Ответ 1
Введите это в свой терминал, чтобы узнать PID процесса, который использует порт 3000:
$ lsof -wni tcp:3000
Затем используйте число в столбце PID, чтобы убить процесс:
$ kill -9 PID
Jekyll работал отлично для меня несколько недель назад, но теперь это внезапно вызывает следующую ошибку:
TCPServer Error: Address already in use - bind(2)
INFO WEBrick::HTTPServer#start: pid=7300 port=4000
% lsof -i :4000
<fetches nothing>
Несмотря на то, что на порту ничего не выполняется. Ниже приведены детали:
% jekyll --version
Jekyll 0.11.2
% where jekyll
/home/bhaarat/.rvm/gems/ruby-1.9.2-p290/bin/jekyll
/usr/bin/jekyll
% ruby --version
ruby 1.9.2p290 (2011-07-09 revision 32553) [i686-linux]
% rvm --version
rvm 1.10.0
Вот вывод
% jekyll --server
Configuration from /home/bhaarat/blog/omnipresent.github.com/_config.yml
Auto-regenerating enabled: /home/bhaarat/blog/omnipresent.github.com -> /home/bhaarat/blog/omnipresent.github.com/_site
[2012-04-21 13:46:40] regeneration: 38 files changed
[2012-04-21 13:46:40] INFO WEBrick 1.3.1
[2012-04-21 13:46:40] INFO ruby 1.9.2 (2011-07-09) [i686-linux]
[2012-04-21 13:46:40] WARN TCPServer Error: Address already in use - bind(2)
[2012-04-21 13:46:40] INFO WEBrick::HTTPServer#start: pid=7382 port=4000
Я знаю, что адрес не используется, и jekyll, вероятно, ломается по какой-то другой причине, но бросает эту ошибку. Какие у меня варианты? Я также попытался переустановить.
Введите это в свой терминал, чтобы узнать PID процесса, который использует порт 3000:
$ lsof -wni tcp:3000
Затем используйте число в столбце PID, чтобы убить процесс:
$ kill -9 PID
Я не был квалифицирован, чтобы оставлять комментарии. Поэтому я добавил новый ответ.
Я столкнулся с этой проблемой в Mac OS X 10.10.3. И я никогда не устанавливал/не использовал Jekyll раньше. Я не смог запустить сервер jekyll с номером порта по умолчанию 4000. Причина была в том, что порт был таким же, как тот, который использовал NoMachine. С
$ sudo lsof -wni tcp:4000
Примечание. Выполнение этой команды без sudo
приведет к выводу.
Я видел этот вывод:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nxd 449 nx 3u IPv4 0x8d22************ 0t0 TCP *:terabase (LISTEN)
nxd 449 nx 4u IPv6 0x8d22************ 0t0 TCP *:terabase (LISTEN)
Порт 4000 был занят nxd
, который был запущен процессом NoMachine. А также
$ sudo kill -9 449
не будет работать, потому что процесс NoMachine nxd продолжит перезапускаться с новым PID.
Поэтому мне пришлось либо:
Изменил мой порт сервера jekyll на сайте _config.yml
на другой, сэкономленный. Я _config.yml
строку ниже к _config.yml
и это сработало.
port: 3000 # change server port to 3000
или же
Ctrl-Z
не завершает программу, а приостанавливает ее и отправляет на задний план. Вы можете возобновить программу с помощью команды "fg". Чтобы закончить его, используйте Ctrl-C
.
Фактическое сообщение об ошибке кажется фиктивным и может быть проигнорировано. Я получаю такое же сообщение об ошибке "адрес в использовании", но jekyll отлично работает в ожидаемом порту.
Я недавно встретил эту проблему.
Я опробовал весь упомянутый выше метод и даже перезапустил свой компьютер, но все равно не смог его решить!!! Затем я удалил jekyll и установил новую версию, он просто сработал.
gem uninstall jekyll & gem install jekyll
(возможно, вам нужна привилегия суперпользователя).
Если вы действительно раздражаетесь подобными ошибками, этот метод sb стоит попробовать...
работать
in /_site
run: python -m SimpleHTTPServer 8080
Убедитесь, что у вас нет другого терминала, в котором вы уже используете сервер. Если это так, сделайте CTRL-C для выключения сервера, и это освободит порт/адрес.
Сначала вам нужно найти PID процесса, который использует порт 3000:
$ps -ef
Выход:
1003 4953 2614 0 08:51 pts/0 00:00:00 -bash
1003 5634 1 0 08:56 pts/0 00:00:00 spring server | moviestore | started 2 hours ago
1003 5637 5634 0 08:56 ? 00:00:01 spring app | moviestore | started 2 hours ago | development mode
1003 6078 4953 0 09:03 pts/0 00:00:03 puma 3.6.0 (tcp://localhost:3000) [moviestore]
1003 6117 2614 0 09:03 pts/1 00:00:00 -bash
root 6520 2 0 09:57 ? 00:00:00 [kworker/u8:2]
root 6936 1225 0 11:09 ? 00:00:00 [lightdm] <defunct>
1003 7084 1 0 11:09 ? 00:00:00 /usr/bin/python /usr/share/apport/apport-gtk
1003 7475 1 0 11:10 ? 00:00:00 /usr/bin/python /usr/share/apport/apport-gtk
root 8739 1225 1 11:29 tty8 00:00:11 /usr/bin/X :1 -auth /var/run/lightdm/root/:1 -nolisten tcp vt8 -novtswitch
root 8853 1225 0 11:29 ? 00:00:00 lightdm --session-child 13 22
1002 8943 1 0 11:30 ? 00:00:00 /usr/bin/gnome-keyring-daemon --daemonize --login
1002 8954 8853 0 11:30 ? 00:00:00 gnome-session --session=ubuntu
1002 8992 8954 0 11:30 ? 00:00:00 /usr/bin/ssh-agent /usr/bin/dbus-launch --exit-with-session gnome-session --session=ubuntu
1002 8995 1 0 11:30 ? 00:00:00 /usr/bin/dbus-launch --exit-with-session gnome-session --session=ubuntu
1002 8996 1 0 11:30 ? 00:00:00 //bin/dbus-daemon --fork --print-pid 5 --print-address 7 --session
1002 9007 8954 0 11:30 ? 00:00:00 /usr/lib/gnome-settings-daemon/gnome-settings-daemon
1002 9015 1 0 11:30 ? 00:00:00 /usr/lib/gvfs/gvfsd
1002 9018 8954 1 11:30 ? 00:00:07 compiz
1002 9021 1 0 11:30 ? 00:00:00 /usr/lib/x86_64-linux-gnu/gconf/gconfd-2
1002 9028 8954 0 11:30 ? 00:00:00 /usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1
1002 9029 8954 0 11:30 ? 00:00:01 nautilus -n
1002 9030 8954 0 11:30 ? 00:00:00 /usr/lib/gnome-settings-daemon/gnome-fallback-mount-helper
1002 9031 8954 0 11:30 ? 00:00:00 nm-applet
1002 9032 8954 0 11:30 ? 00:00:02 /opt/mTrac/mTrac
1002 9033 8954 0 11:30 ? 00:00:00 bluetooth-applet
1002 9045 9032 0 11:30 ? 00:00:00 /opt/mTrac/mTrac --type=zygote --no-sandbox
1002 9050 1 0 11:30 ? 00:00:00 /usr/lib/gvfs/gvfs-gdu-volume-monitor
1002 9054 1 0 11:30 ? 00:00:00 /usr/bin/pulseaudio --start --log-target=syslog
1002 9057 1 0 11:30 ? 00:00:00 /usr/lib/gvfs/gvfs-gphoto2-volume-monitor
1002 9062 1 0 11:30 ? 00:00:00 /usr/lib/gvfs/gvfs-afc-volume-monitor
здесь вы можете увидеть:
1003 6078 4953 0 09:03 pts/0 00:00:03 puma 3.6.0 (tcp://localhost:3000) [moviestore]
localhost: 3000 имеют pid: 6078
убить этот процесс
$sudo kill 6078
затем запустите
$rails s