2012-01-13 13 views
12

Tengo el servidor Ubuntu 11.04 i386 con nginx 1.0.11 instalado. Además, estoy usando this init.d script, el único que he encontrado en varios lugares diferentes. Se inicia el servidor muy bien, sin embargo, en STOP/RESET diceNginx daemon stop está fallando

* Stopping Nginx Server...  [fail] 

Por supuesto, el demonio no se detiene, y al reiniciar la configuración no se vuelve a cargar.

¿Cómo puedo reparar esto?

Respuesta

28

Es probable que no pueda matar el proceso.

Abre el script nginx ubicado en /etc/??.d/nginx y encuentra donde se cree que nginx.pid. Será algo así como "/var/run/nginx.pid".

Si el archivo pid no está allí, abra nginx.conf y busque la configuración de pid. Si no coincide, establezca el valor conf en el lugar donde el guión cree que debería estar, p.

# pid of nginx process 
pid /var/run/nginx.pid; 
+2

para mí, que era '/ carrera/nginx.pid' en nginx.conf que reemplacé con '/ var/run/nginx.pid' y funcionó. ¡Gracias! –

+0

en mi problema eran comillas para esa ruta –

+0

Gracias - Estaba viendo el archivo pid en ambos directorios, pero al cambiar el init y nginx.conf para apuntar al directorio 'var' resolví el mismo problema en mi secuencia de comandos stop/restart . – Scott

5

sudo service nginx restart le dará algo como esto:

Stopping nginx:           [FAILED] 
Starting nginx: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use) 
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use) 
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use) 
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use) 
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use) 
nginx: [emerg] still could not bind() 

luego matar el proceso manualmente por su puerto:

sudo fuser -k 80/tcp (o usar cualquier puerto que está utilizando)

alternativamente , mata los procesos por su ID:

ps -ef |grep nginx 
kill <pid> 
1

Me enfrenté a problemas similares.

Generalmente uso apache/apache2.

El siguiente podría ayudarle a:

sudo nginx -s stop | ps -ef | grep nginx | awk {'print $2'} | xargs sudo kill -9 | sudo service apache2 start 

Por favor refiérase docs este Github Gist

+0

funcionó para mí. Gracias por compartir. –

3

probar este comando:

sudo fuser -k 80/tcp 
Cuestiones relacionadas