Jekyll działał dobrze u mnie kilka tygodni temu, ale teraz nagle pojawia się następujący błąd:
TCPServer Error: Address already in use - bind(2)
INFO WEBrick::HTTPServer#start: pid=7300 port=4000
% lsof -i :4000
<fetches nothing>
Mimo że nic nie działa w porcie. Poniżej szczegóły:
% 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
Oto wynik
% 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
Wiem, że adres nie jest używany, a jekyll prawdopodobnie psuje się z innego powodu, ale generuje ten błąd. Jakie mam możliwości? Próbowałem również zainstalować ponownie.
lsof -i :<port number>
plus to samo dzieje się na innym pudełkugem uninstall jekyll
. Jeśli nie zainstalowałeś z gemem, aby nadpisać istniejącą wersję. Czy próbowałeś wejść do portu za pomocą przeglądarki lub telnetu, aby sprawdzić, czy to pomoże?Odpowiedzi:
Wpisz to w terminalu, aby znaleźć PID procesu, który korzysta z portu 3000:
$ lsof -wni tcp:3000
Następnie użyj liczby w kolumnie PID, aby zakończyć proces:
$ kill -9 PID
źródło
PID
rzeczywisty numer, który widzisz pod PID. na przykład pobiegłemkill -9 11734
Nie kwalifikowałem się do komentowania. Więc dodałem nową odpowiedź.
Napotkałem ten problem w systemie Mac OS X 10.10.3. I nigdy wcześniej nie instalowałem / nie używałem Jekyll. Nie udało mi się uruchomić serwera jekyll z jego domyślnym numerem portu 4000. Powodem było to, że port był taki sam, jak używany w NoMachine. Z
$ sudo lsof -wni tcp:4000
Uwaga: uruchomienie tego polecenia bez nie
sudo
spowoduje żadnego wyniku.Widziałem to wyjście:
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)
Port 4000 był zajęty
nxd
, co zostało uruchomione przez NoMachine. I$ sudo kill -9 449
nie zadziała, ponieważ proces nxd NoMachine będzie się restartował z nowym PID.
Dlatego musiałem albo:
Zmieniłem port serwera Jekyll w witrynie
_config.yml
na inny oszczędzony. Dołączyłem poniższy wiersz do_config.yml
i zadziałało.port: 3000 # change server port to 3000
lub
źródło
Ctrl-Z
nie kończy programu, ale raczej zawiesza go i wysyła w tle. Możesz wznowić działanie programu komendą „fg”. Aby faktycznie go zakończyć, użyjCtrl-C
.Rzeczywisty komunikat o błędzie wydaje się fałszywy i można go zignorować. Otrzymuję ten sam komunikat o błędzie „adres w użyciu”, ale jekyll i tak działa dobrze na oczekiwanym porcie.
źródło
Niedawno spotkałem się z tym problemem.
Wypróbowałem wszystkie wymienione powyżej metody, a nawet zrestartowałem komputer, ale nadal nie mogłem go rozwiązać !!! Następnie usunąłem jekyll i zainstalowałem nową wersję, po prostu działało.
gem uninstall jekyll & gem install jekyll
(być może potrzebujesz uprawnień superużytkownika).Jeśli naprawdę denerwują Cię podobne błędy, warto wypróbować tę metodę ...
źródło
możemy polecenie użytkownika fuser
fuser -k 3000/tcp
źródło
Sprawdź, czy nie masz otwartego innego terminala, na którym już działa serwer. W takim przypadku wykonaj CTRL-C, aby zamknąć serwer, a to zwolni port / adres.
źródło
Najpierw musisz znaleźć PID procesu, który używa portu 3000:
Wyjście w ten sposób:
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
tutaj możesz zobaczyć :
1003 6078 4953 0 09:03 pts/0 00:00:03 puma 3.6.0 (tcp://localhost:3000) [moviestore]
localhost: 3000 ma
pid: 6078
zabić ten proces przez
$sudo kill 6078
następnie uruchomić
źródło
obejść
w
/_site
biegu:python -m SimpleHTTPServer 8080
źródło