Usamos nginx no centos 6 e o script init.d daqui: https://gist.github.com/sairam/5892520/raw/b8195a71e944d46271c8a49f2717f70bcd04bf1a/etc-init.d-nginx
Tudo "funciona"
Nginx é executado, etc.
No entanto, em certos casos, depois de usar este script init.d via ssh, o script, tanto via ssh quanto como root no console, apenas parece funcionar.
Por exemplo
service nginx stop
[OK]
Mas o nginx ainda está em execução ....
service nginx restart
[OK]
Mas o serviço está rodando com o mesmo pid e nunca saiu.
Reiniciar a caixa parece ser a única maneira de fazer o serviço parar e reiniciar corretamente.
Etapas completas e problemas mostrados abaixo.
Como eu abordo este problema?
Aqui eu faço login como sysadmin e, em seguida, su para executar os comandos:
Aqui eu apenas logo como root para começar. O mesmo problema:
Para responder: "como trabalhar neste problema", a resposta é usar o comando ps:
ps -eaf|grep nginx
Isso mostra que, após emitir uma parada ou recarregar, um ou mais processos de trabalho nginx ficam parados para sempre em "o processo está sendo encerrado"
Como resultado, o nginx nunca sai e toda a situação é mantida até que você mate o pid ou emita nginx -s stop (que basicamente mata o pid, mas é mais fácil porque você não precisa fazer uma pesquisa pid).
Parece ter algo a ver com o módulo de verificação upstream ou quando usado para soquetes da web.
O problema mais específico foi postado aqui: nginx 1.7.9: Reverse Proxy Web Sockets: trava na parada do serviço/reinicialização do serviço, nunca sai