Por que não parar o servidor nginx elimina os processos associados a ele?

4

Quando eu paro o nginx assim no Ubuntu 12.04, recebo os seguintes erros:

$ sudo service nginx stop
Stopping nginx: nginx.
$sudo service nginx start
Starting nginx: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

Eu tenho que usar this para consertá-lo. Por que não parar o serviço mata o processo nginx? Isso é confuso!

    
por bernie2436 10.03.2014 / 23:13

2 respostas

5

Por padrão, o daemon start-stop envia o SIGTERM para o processo nginx. Não garante o processo de parada. Correção: no arquivo /etc/init.d/nginx change na seção "stop" string

start-stop-daemon --stop --quiet --pidfile /var/run/$NAME.pid \

para

start-stop-daemon --stop --retry=TERM/30/KILL/5 --quiet --pidfile /var/run/$NAME.pid \

Essa correção envia SIGKILL (kill -9) se SIGTERM não parar o processo.

E garanta, por favor, que o caminho para o arquivo pid pid /var/run/nginx.pid; em /etc/nginx/nginx.conf e o caminho --pidfile /var/run/$NAME.pid em /etc/init.d/nginx seja o mesmo.

    
por 06.06.2014 / 12:08
1

Se o seu sistema tiver o systemd, use-o para eliminar o serviço - A raiz pode ser necessária:

systemctl kill nginx.service

Mais informações .

    
por 08.09.2015 / 14:42