Jekyll hat vor ein paar Wochen gut für mich gearbeitet, aber jetzt gibt es plötzlich den folgenden Fehler:
TCPServer Error: Address already in use - bind(2)
INFO WEBrick::HTTPServer#start: pid=7300 port=4000
% lsof -i :4000
<fetches nothing>
Auch wenn auf dem Port nichts läuft. Unten sind die Details:
% 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
Hier ist die Ausgabe
% 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
Ich weiß, dass die Adresse nicht verwendet wird und Jekyll wahrscheinlich aus einem anderen Grund bricht, als diesen Fehler auszulösen. Was sind meine Optionen? Ich habe auch versucht, neu zu installieren.
lsof -i :<port number>
und dasselbe passiert auf einer anderen Boxgem uninstall jekyll
. Wenn Sie nicht mit gem installiert haben, um die vorhandene Version zu überschreiben. Haben Sie versucht, den Port mit Ihrem Browser oder Telnet zu erreichen, um festzustellen, ob dies hilfreich ist?Antworten:
Geben Sie dies in Ihr Terminal ein, um die PID des Prozesses zu ermitteln, der den 3000-Port verwendet:
Verwenden Sie dann die Nummer in der PID-Spalte, um den Prozess abzubrechen:
quelle
PID
die tatsächliche Nummer ersetzen , die Sie unter der PID sehen. Zum Beispiel lief ichkill -9 11734
Ich war nicht qualifiziert, einen Kommentar zu schreiben. Also habe ich eine neue Antwort hinzugefügt.
Ich habe dieses Problem unter Mac OS X 10.10.3 festgestellt. Und ich hatte Jekyll noch nie installiert / benutzt. Ich konnte den Jekyll-Server nicht mit der Standardportnummer 4000 starten. Der Grund dafür war, dass der Port der von NoMachine verwendete war. Mit
Hinweis: Wenn Sie diesen Befehl ohne
sudo
ausführen, wird keine Ausgabe ausgegeben.Ich habe diese Ausgabe gesehen:
Der Port 4000 wurde von besetzt
nxd
, was der von NoMachine gestartete Prozess war. Undwürde nicht funktionieren, da der nxd-Prozess von NoMachine mit einer neuen PID immer wieder neu gestartet würde.
Deshalb musste ich entweder:
Mein Jekyll-Server-Port auf der Site wurde
_config.yml
in einen anderen verschont. Ich habe die folgende Zeile angehängt_config.yml
und es hat funktioniert.port: 3000 # change server port to 3000
oder
quelle
Ctrl-Z
beendet ein Programm nicht, sondern setzt es aus und sendet es in den Hintergrund. Sie können das Programm mit dem Befehl "fg" fortsetzen. Verwenden Sie, um es tatsächlich zu beendenCtrl-C
.Die eigentliche Fehlermeldung scheint falsch zu sein und kann ignoriert werden. Ich erhalte die gleiche Fehlermeldung "Adresse in Verwendung", aber Jekyll funktioniert am erwarteten Port trotzdem einwandfrei.
quelle
Ich habe dieses Problem kürzlich getroffen.
Ich habe alle oben genannten Methoden ausprobiert und sogar meinen Computer neu gestartet, konnte sie aber immer noch nicht lösen !!! Dann habe ich das Jekyll entfernt und eine neue Version installiert, es hat einfach funktioniert.
gem uninstall jekyll & gem install jekyll
(Vielleicht brauchen Sie ein Superuser-Privileg).Wenn Sie sich wirklich über ähnliche Fehler ärgern, ist diese jdn-Methode einen Versuch wert ...
quelle
Wir können den Befehl fuser verwenden
fuser -k 3000/tcp
quelle
Stellen Sie sicher, dass kein anderes Terminal geöffnet ist, auf dem bereits ein Server ausgeführt wird. Wenn dies der Fall ist, drücken Sie STRG + C, um den Server herunterzufahren. Dadurch wird der Port / die Adresse freigegeben.
quelle
Zuerst müssen Sie die PID des Prozesses ermitteln, der den 3000-Port verwendet:
Ausgabe wie folgt:
hier sieht man :
localhost: 3000 haben
pid: 6078
töte diesen Prozess durch
dann renne
quelle
herumarbeiten
im
/_site
Lauf:python -m SimpleHTTPServer 8080
quelle