unix: ///var/run/supervisor.sock keine solche Datei

12623
kramer65

Ich lasse Supervisord auf meinem Ubuntu 14.04-Server laufen und alles funktioniert gut. Ich implementiere mit git push und nach der Bereitstellung muss ich auch meinen Anwendungsserver ( gunicorn ) neu starten, was ich angeblich verwenden kann supervisorctl.

un my supervisord.conf, gunicorn ist wie folgt definiert:

[program:gunicorn] command=/home/imb/imb/venv/bin/gunicorn --worker-class eventlet -b 127.0.0.1:5000 -w 1 app:app directory=/home/imb/imb autostart=true autorestart=true stdout_logfile=/tmp/gunicorn.log redirect_stderr=true stopsignal=QUIT 

und ich habe es supervisorctlso aktiviert :

[supervisorctl] serverurl=unix:///var/run/supervisor.sock ; use a unix:// URL for a unix socket 

Ich begann mit dem Supervisor

sudo supervisord -c /home/imb/imb/supervisord.conf 

Soweit supervisorctl restart gunicornich weiß, sollte ich Gunicorn jetzt mit dem Befehl neu starten können, aber wenn ich das tue, bekomme ich es

$ supervisorctl restart gunicorn unix:///var/run/supervisor.sock no such file 

Ich habe nachgesehen und die Datei existiert /var/run/supervisor.socktatsächlich nicht, obwohl ich mir sicher bin, dass der Supervisor tatsächlich läuft:

$ ps -A | grep supervisor 27211 ? 00:00:00 supervisord 

Weiß jemand, warum die /var/run/supervisor.sockDatei nicht erstellt wird, obwohl der Supervisor eindeutig ausgeführt wird? Alle Tipps sind willkommen!

5
Hast du diesen Beitrag gesehen? http://stackoverflow.com/questions/10716159/nginx-and-supervisor-setup-in-ubuntu Haben Sie eine der Oslutionen ausprobiert? Arbeiten Sie? Wenn nicht, wie versagen sie? MariusMatutiae vor 8 Jahren 0

3 Antworten auf die Frage

4
kramer65

Okay, nachdem ich noch ein bisschen rumgespielt hatte, fand ich heraus, was ich falsch gemacht hatte.

Stellt die Zeilen für supervisorctlunten dar, sagen supervisorctlSie nur, wo die Socket-Datei gefunden werden kann.

[supervisorctl] serverurl=unix:///var/run/supervisor.sock 

Weiter oben in der Datei befinden sich zwei weitere Zeilen, die festlegen, wo die Datei tatsächlich erstellt wird:

[unix_http_server] file=/tmp/supervisor.sock 

Wie Sie sehen können, wurde die Socket-Datei erstellt, /tmp/während supervisorctlversucht wurde, die Datei zu lesen /var/run/. Ich habe die letzte Zeile geändert file=/var/run/supervisor.sockund jetzt funktioniert es wunderbar.

Ich hoffe, diese Antwort könnte jemandem helfen, der sich mit den gleichen Problemen beschäftigt.

Sie können auch den Link von @MariusMatutiae in den Kommentaren auschecken: https://stackoverflow.com/questions/10716159/nginx-and-supervisor-setup-in-ubuntu

Ich sehe, dass die von mir vorgeschlagene Seite die richtige Lösung für Sie enthält, http://stackoverflow.com/a/28469044/2796243. Ich bin froh zu sehen, dass ich helfen konnte, Prost. MariusMatutiae vor 8 Jahren 1
@MariusMatutiae - Ja, vielleicht habe ich dir nicht die Anerkennung gegeben, die du verdient hast. Vielen Dank an dich! Beachten Sie, dass ich Ihnen immer noch gerne 50 Kopfgeldpunkte gebe. Schreibe einfach eine Antwort und ich werde es dir belohnen .. :-) kramer65 vor 8 Jahren 0
Danke, sehr nett von dir, aber ich habe die Lösung wirklich nicht gefunden. Es ist nur so, dass die Seite oben mehrere verschiedene Lösungen enthält, von denen nur eine (glücklich) auf Sie zutrifft. Es kann jedoch für andere hilfreich sein, die diesen Beitrag lesen, um zu wissen, dass möglicherweise andere Lösungen verfügbar sind, falls dies erforderlich sein sollte. Das ist alles. Prost. MariusMatutiae vor 8 Jahren 0
Ich sah mich einem anderen "lustigen" Problem gegenüber. Verwenden Sie den tmp-Ordner nicht für die Socket-Datei, da diese automatisch gereinigt wird und die Socket-Datei bis zum nächsten Neustart des Supervisords gelöscht wird. StalkAlex vor 7 Jahren 0
2
monothorn

Für Benutzer, die für beide den gleichen Eintrag haben

[supervisorctl] serverurl=unix:///tmp/supervisor.sock 

&

[unix_http_server] file=/tmp/supervisor.sock 

Befolgen Sie die folgenden Schritte, um das Problem zu beheben.

  1. Löschen Sie die .sock-Datei aus / tmp
  2. Führen Sie den Befehl "Supervisord" aus. Dadurch wird die Sockendatei neu erstellt.
  3. Führen Sie 'supervisorctl -i' aus, um den Status der Dienste zu überprüfen.

Hoffe das hilft dir!

-1
Isha

Aktualisieren Sie es auf MacOS Sierra 10.12.5 .

Ich hatte das gleiche Problem und alles war auch in der Konfigurationsdatei richtig. Später kam ich zu dem Schluss, dass ich auf das neueste MacOS Sierra 10.12.3 umgestiegen war und dann funktionierte es nicht. Es hatte an der älteren Version gearbeitet, jedoch nicht an dieser spezifischen Version von MacOS. Dann habe ich ein Upgrade auf MacOS Sierra 10.12.5 durchgeführt und alles scheint gut zu funktionieren.