Eu tenho o nginx 1.6.2 com configuração para atualizar a conexão com o websocket.
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
Quando nenhuma conexão de websocket é aberta, o "service nginx stop" funciona, os processos mestre e de trabalho são interrompidos normalmente.
killproc $prog -QUIT
Mas quando eu tenho um websocket aberto, o nginx não pode ser interrompido, mesmo que eu receba:
Stopping nginx: [ OK ]
Eu tentei :
killproc $prog -KILL
mas, como esperado, ele mata com força o mestre na primeira vez que executo o comando e o trabalhador se eu executar novamente.
O que você recomenda para forçar um desligamento no nginx? Estou pensando em substituir killproc por:
pkill $prog
http://nginx.org/en/docs/control.html
Tente usar
TERM
ouINT
em vez deKILL
.KILL
é muito "rápido", não dá ao mestre do nginx a chance de parar os trabalhadores.