2014-09-10 8 views
6

Ich benutze Nginx mit Supervisor. Meine supervisord.conf Dateiinhalt ist wie folgt:Verwendung von Nginx mit Supervisor - Nginx-Prozess gestartet mehrere Male zu Bindungsfehler führen

[supervisord] 
nodaemon=true 
logfile=/var/log/supervisor/supervisord.log 

[program:nginx] 
command=/usr/sbin/nginx -c /etc/nginx/nginx.conf 
stdout_logfile=/var/log/supervisor/%(program_name)s.log 
stderr_logfile=/var/log/supervisor/%(program_name)s.log 
redirect_stderr=true 

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

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

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

Ich begann supervisord, nachdem sichergestellt wurde, dass netstat -nltp sagt, dass alle Anschlüsse sind frei, aber bitte auf den nginx Fehlerprotokoll unten finden:

2014/09/10 20:39:00 [emerg] 277#0: bind() to 0.0.0.0:81 failed (98: Address already in use) 
2014/09/10 20:39:00 [emerg] 277#0: bind() to 0.0.0.0:18081 failed (98: Address already in use) 
2014/09/10 20:39:00 [emerg] 277#0: bind() to 0.0.0.0:18082 failed (98: Address already in use) 
2014/09/10 20:39:00 [emerg] 277#0: bind() to 0.0.0.0:18083 failed (98: Address already in use) 
2014/09/10 20:39:00 [emerg] 277#0: bind() to 0.0.0.0:10080 failed (98: Address already in use) 
2014/09/10 20:39:00 [emerg] 277#0: bind() to 0.0.0.0:8080 failed (98: Address already in use) 
2014/09/10 20:39:00 [emerg] 277#0: bind() to 0.0.0.0:28080 failed (98: Address already in use) 
2014/09/10 20:39:00 [emerg] 277#0: bind() to 0.0.0.0:18080 failed (98: Address already in use) 
2014/09/10 20:39:00 [emerg] 277#0: bind() to 0.0.0.0:20081 failed (98: Address already in use) 
2014/09/10 20:39:00 [emerg] 277#0: bind() to 0.0.0.0:81 failed (98: Address already in use) 

Aber netstat - Nltp Befehl gibt mir folgendes:

Active Internet connections (only servers) 
Proto Recv-Q Send-Q Local Address   Foreign Address   State  PID/Program name 
tcp  0  0 0.0.0.0:28080   0.0.0.0:*    LISTEN  246/nginx: master p 
tcp  0  0 0.0.0.0:8080   0.0.0.0:*    LISTEN  246/nginx: master p 
tcp  0  0 0.0.0.0:81    0.0.0.0:*    LISTEN  246/nginx: master p 
tcp  0  0 0.0.0.0:20081   0.0.0.0:*    LISTEN  246/nginx: master p 
tcp  0  0 0.0.0.0:18080   0.0.0.0:*    LISTEN  246/nginx: master p 
tcp  0  0 0.0.0.0:10080   0.0.0.0:*    LISTEN  246/nginx: master p 
tcp  0  0 0.0.0.0:18081   0.0.0.0:*    LISTEN  246/nginx: master p 
tcp  0  0 0.0.0.0:18082   0.0.0.0:*    LISTEN  246/nginx: master p 
tcp  0  0 0.0.0.0:18083   0.0.0.0:*    LISTEN  246/nginx: master p 

Was bedeutet, dass Nginx läuft und läuft. Aber versucht der Supervisor, mehrere Nginx-Prozesse zu starten oder erhält er kein Signal von Nginx, dass er gestartet wurde. Kann jemand etwas Licht dazu bringen?

+0

Sieht aus wie Nginx (Master-Prozess und Subprozesse) bereits ausgeführt wird. Überprüfen Sie Ihre Nginx-Konfiguration (/etc/nginx/nginx.conf) höchstwahrscheinlich hat es die Definition dieser Ports. Stoppen Sie Supervisord, töten Sie alle Nginx-Prozesse 'pkill nginx' und versuchen Sie es erneut. – danielgpm

Antwort

1

Sie sollten -g 'daemon off;' zu den Nginx-Argumenten hinzufügen.

Supervisor erwartet, dass der Dienst im Vordergrund ausgeführt wird. Standardmäßig gibt sich nginx im Hintergrund (daemonisiert) und wird beendet. Supervisor wird denken, dass nginx gestorben ist, als es beendet wird und versucht, neu zu starten.

In alten Versionen von Nginx daemon off wurde abgeraten, aber das ist nicht mehr der Fall.

Verwandte Themen