Supervisor-HTTP-Server-Port-Problem

65

Ich habe Supervisor-Setup, um einige Prozesse zu verwalten. Es funktioniert einwandfrei, wenn ich meinen Server starte, aber wenn ich ihn stoppe und versuche, ihn erneut zu starten, schlägt dies fehl und ich bekomme folgende Fehlermeldung:

 * Supervisor Daemon Manager wird gestartet ...
Fehler: Ein anderes Programm überwacht bereits einen Port, für dessen Verwendung einer unserer HTTP-Server konfiguriert ist. Beenden Sie dieses Programm zuerst, bevor Sie supervisord starten.
Verwenden Sie für Hilfe / usr / bin / supervisord -h
   ...Scheitern!

Ich verwende Nginx auf Port 80 und 4 Webserver auf den Ports 8000, 8001, 8002, 8003

Hat jemand eine Idee, was los ist?

Beim Neustart funktioniert alles einwandfrei.


quelle

Antworten:

91

Ich bin auch nur darauf gestoßen. Ich habe es folgendermaßen behoben:

sudo unlink /tmp/supervisor.sock

sudo unlink /var/run/supervisor.sock

Diese .sock-Datei wird in der Datei config value von /etc/supervisord.conf [unix_http_server] definiert (Standard ist /tmp/supervisor.sock oder /var/run/supervisor.sock).

Hoffe das hilft jemandem in der Zukunft.

Ramayac
quelle
12
@sdolan Wow es hat mir geholfen! Ich habe /var/run/supervisor.sock entfernt und den Fehler auf Debian Stable
Abhishek A
2
Führen Sie ein find / -name supervisor.sock aus, bevor Sie Unlink ausführen - auf Debian-Systemen befindet es sich in / var / run /, aber Ihre Unlink-Lösung funktionierte für mich
AndrewPK
2
Warum wird der Supervisor nicht mit einem Fehlercode beendet, damit Skripte automatisch die Verknüpfung aufheben und es erneut versuchen können?
Tal Weiss
Sei hier vorsichtig. Führen Sie nach dem Aufheben der Verknüpfung "ps -ef | grep supervisord" aus, und Sie werden feststellen, dass der alte Prozess noch ausgeführt wird. Möglicherweise möchten Sie auch <process_id> töten. EDIT: Dies war mein Fall bei der Verwendung von Ubuntu 14.04.
jball037
1
Nach dem Unlink-Befehl versuche ich, Supervisor neu zu starten, aber jetzt fehlt die .sock. unix:///tmp/supervisor.sock no such file. Was muss ich sonst noch tun?
Robert
7

Ich würde lsof verwenden, um herauszufinden, welcher Prozess an diesen Ports empfangsbereit ist.

lsof -i tcp | grep LISTEN

Sobald Sie herausgefunden haben, um welchen Prozess es sich handelt, ist dies die halbe Miete.

Gorilla
quelle