it-swarm.com.de

nginx und Supervisor-Setup in Ubuntu

Ich verwende das Django-gunicorn-nginx-Setup, indem ich diesem Tutorial folge http://ijcdigital.com/blog/Django-gunicorn-and-nginx-setup/ Bis zum Nginx-Setup funktioniert es. Dann habe ich Supervisor installiert, konfiguriert und dann den Server neu gestartet und überprüft, dass das Gateway 502 fehlerhaft ist. Ich verwende Ubuntu 12.04 LTS

/etc/supervisor/conf.d/qlimp.conf

[program: qlimp]
directory = /home/nirmal/project/qlimp/qlimp.sh
user = nirmal
command = /home/nirmal/project/qlimp/qlimp.sh
stdout_logfile = /path/to/supervisor/log/file/logfile.log
stderr_logfile = /path/to/supervisor/log/file/error-logfile.log

Dann habe ich Supervisor neu gestartet, und ich führe diesen Befehl $ supervisorctl start qlimp aus und erhalte diese Fehlermeldung

unix:///var/run/supervisor.sock no such file

Gibt es ein Problem in meinem Supervisor-Setup?

Vielen Dank!

49
rnk

Dass es keine Socket-Datei gibt, bedeutet wahrscheinlich, dass der Supervisor nicht läuft. Ein Grund dafür ist, dass Ihre Datei qlimp.conf eine Art Fehler enthält. Wenn du eine 

Sudo service supervisor start

sie können sehen, ob dies der Fall ist. Wenn der Supervisor bereits läuft, wird dies angezeigt. Wenn ein Fehler erkannt wird, erhalten Sie normalerweise eine hilfreichere Fehlermeldung als supervisorctl. 

65
kdazzle

Ich habe das gleiche Problem wie Sie getroffen und nach mehrmals kommt hier die Lösung:

  1. Entfernen Sie zunächst die apt-get Supervisor-Version:

      Sudo apt-get remove supervisor
    
  2. Beenden Sie den Backend-Supervisor-Prozess:

     Sudo ps -ef | grep supervisor
    
  3. Dann holen Sie sich die neueste Version (apt-get Version war 3.0a8):

    Sudo easy_install(pip install) supervisor==3.0b2 
    
  4. Echo der Konfigurationsdatei (Stammpremiere):

    echo_supervisord_conf > /etc/supervisord.conf
    

5.Starten Sie den Supervisor:

   Sudo supervisord

6. Geben Sie das Supervisorctl ein:

   Sudo supervisorctl

Alles wurde getan! Habe Spaß!

25
Scen

Versuche dies

cd /etc/supervisor
Sudo supervisord
Sudo supervisorctl restart all
17
Anil

Sind Sie sicher, dass Supervisord installiert ist und ausgeführt wird? Gibt es eine Socket-Datei bei /var/run/supervisor.sock?

Der Fehler zeigt an, dass supervisorctl, die Steuerungs-CLI, den UNIX-Socket nicht erreichen kann, um mit supervisord, dem Dämon, zu kommunizieren.

Sie können auch /etc/supervisor/supervisord.conf überprüfen und prüfen, ob die Werte für die Abschnitte unix_http_server und supervisorctl übereinstimmen.

Beachten Sie, dass dies ein Problem auf Ubuntu-Ebene ist, kein Problem mit Python, Django oder Nginx. Daher gehört diese Frage wahrscheinlich zu ServerFault.

12
Martijn Pieters

Unter Ubuntu 16+ scheint es durch den Wechsel zu systemd verursacht worden zu sein. Diese Problemumgehung kann für neue Server behoben werden:

 # Make sure Supervisor comes up after a reboot.
 $ Sudo systemctl enable supervisor

 # Bring Supervisor up right now.
 $ Sudo systemctl start supervisor

und überprüfen Sie dann Ihren Status von iconic.conf [Mein Beispiel] des Supervisors

$ Sudo supervisorctl status iconic

 enter image description here

PS: Stellen Sie sicher, dass Gunicorn beim Laufen keine Probleme haben sollte.

9
Dinesh Sunny

Der Fehler kann möglicherweise darauf zurückzuführen sein, dass Sie kein Privileg haben. Vielleicht können Sie den Fehler auf diese Weise beheben, Ihr Terminal öffnen und vim /etc/supervisord.conf eingeben, um die Datei zu bearbeiten, die Zeilen durchsuchen 

[unix_http_server]
; file =/tmp/supervisor.sock; (der Pfad zur Socket-Datei)
; chmod = 0700; Socket-Dateimodus (Standardeinstellung 0700)

und löschen Sie das Semikolon am Anfang der Zeichenfolge ;file=/tmp/supervisor.sock und ;chmod=0700. Starten Sie Ihren Supervisord erneut. Ich schlage vor, dass Sie es tun.

4
Karl Doenitz

Stellen Sie sicher, dass in /etc/supervisor.conf die folgenden zwei Abschnitte vorhanden sind

[unix_http_server]
file=/tmp/supervisor.sock ; path to your socket file

[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
2

In meinem Fall lief Supervisor nicht. Um das Problem zu finden, das ich ausführen möchte

Sudo systemctl status supervisor.service

Das Problem war, dass meine Protokolle auf ein nicht vorhandenes Verzeichnis verweisen, sodass ich es nur erstellen musste.

Ich hoffe, es hilft :)

2
Alan Wagner

Sie können so etwas tun: -

Sudo touch /var/run/supervisor.sock
Sudo chmod 777 /var/run/supervisor.sock
Sudo service supervisor restart

Es ist definitiv Arbeit, probiere es aus.

2
Manish Silawat

Erstellen Sie eine conf-Datei und fügen Sie unten Zeilen hinzu

Denken Sie daran, dass Sie zum Arbeiten mit Nginx den Autostart beim Systemstart deaktivieren müssen, den Sie während der Installation von Nginx aktiviert haben.

https://askubuntu.com/questions/177041/nginx-disable-autostart

Hinweis: Alle Supervisor-Prozesse müssen im "Daemon-Off" -Modus sein, um mit dem Supervisor arbeiten zu können

[program:nginx]
command=/usr/sbin/nginx -g "daemon off;"
autostart=true
autorestart=true
startretries=5
stopasgroup=true
stopsignal=QUIT
numprocs=1
startsecs=0
process_name=WebServer(Nginx)
stderr_logfile=/var/log/nginx/error.log
stderr_logfile_maxbytes=10MB
stdout_logfile=/var/log/nginx/access.log
stdout_logfile_maxbytes=10MB

Sudo supervisorctl reread && Sudo supervisorctl update

enter image description here

0
Pratik Panchal
touch /var/run/supervisor.sock
Sudo supervisord -c /etc/supervisor/supervisord.conf

und danach Supervisorctl alle neu starten

wenn Sie den Supervisor-Port abhören möchten

ps -ef | grep supervisord

wenn Sie den Prozess beenden möchten 

kill -s SIGTERM 2503  
0
ercvs