Jekyll fonctionnait bien pour moi il y a quelques semaines, mais maintenant, tout à coup, cela me donne l'erreur suivante:
TCPServer Error: Address already in use - bind(2)
INFO WEBrick::HTTPServer#start: pid=7300 port=4000
% lsof -i :4000
<fetches nothing>
Même si rien ne fonctionne sur le port. Voici les détails:
% 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
Voici la sortie
% 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
Je sais que l'adresse n'est pas utilisée et jekyll est probablement en train de rompre pour une autre raison, mais en lançant cette erreur. Quelles sont mes options? J'ai essayé de réinstaller aussi.
Tapez ceci dans votre terminal pour connaître le PID du processus utilisant le port 3000:
$ lsof -wni tcp:3000
Ensuite, utilisez le numéro dans la colonne PID pour tuer le processus:
$ kill -9 PID
Je n'étais pas qualifié pour poster un commentaire. J'ai donc ajouté une nouvelle réponse.
J'ai rencontré ce problème sur Mac OS X 10.10.3. Et je n’avais jamais installé/utilisé Jekyll auparavant. Je n'ai pas pu démarrer le serveur jekyll avec son numéro de port par défaut 4000. La raison en était que le port était le même que celui utilisé par NoMachine. Avec
$ Sudo lsof -wni tcp:4000
Remarque: L'exécution de cette commande sans Sudo
n'aura aucun résultat.
J'ai vu cette sortie:
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)
Le port 4000 était occupé par nxd
, processus lancé par NoMachine. Et
$ Sudo kill -9 449
ne fonctionnerait pas, car le processus nxd de NoMachine continuerait à redémarrer avec un nouveau PID.
Par conséquent, je devais soit:
Changé le port de mon serveur jekyll du site _config.yml
en un autre épargné. J'ai ajouté la ligne ci-dessous à _config.yml
et cela a fonctionné.
port: 3000 # change server port to 3000
ou
Ctrl-Z
ne termine pas un programme, mais le suspend et l'envoie en arrière-plan. Vous pouvez reprendre le programme avec la commande "fg". Pour le terminer, utilisez Ctrl-C
.
Le message d'erreur réel semble être faux et peut être ignoré. Je reçois le même message d'erreur "adresse utilisée" mais jekyll fonctionne quand même au port attendu.
J'ai rencontré ce problème récemment.
J'ai essayé toutes les méthodes mentionnées ci-dessus et j'ai même redémarré mon ordinateur, mais je ne pouvais toujours pas le résoudre !!! Ensuite, j'ai enlevé le jekyll et installé une nouvelle version, cela a juste fonctionné.
gem uninstall jekyll & gem install jekyll
(peut-être avez-vous besoin du privilège de super utilisateur).
Si vous êtes vraiment ennuyé par des bugs similaires, cette méthode sb vaut le coup d'être essayée ...
solution de contournement
dans /_site
exécuter: python -m SimpleHTTPServer 8080
Vérifiez que vous n'avez pas un autre terminal ouvert sur lequel vous exécutez déjà un serveur . Si c'est le cas, faites un CTRL-C pour éteindre le serveur, ce qui libérera le port/l'adresse.
Vous devez d’abord trouver le PID du processus utilisant le port 3000:
$ps -ef
Sortie comme ceci:
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
içi vous pouvez voir :
1003 6078 4953 0 09:03 pts/0 00:00:03 puma 3.6.0 (tcp://localhost:3000) [moviestore]
localhost: 3000 ont pid: 6078
tuer ce processus par
$Sudo kill 6078
puis courir
$Rails s