Eu não sei o que o /etc/init.d/nginx
no Ubuntu faz, mas posso explicar que mecanismos o Nginx tem para que você possa atualizá-lo sem interromper o serviço.
Se você instalasse / atualizasse o Nginx das fontes, certamente o construiria no primeiro. Então você emite make install
para copiar o novo binário.
Em seguida, você precisa aprender o que é o processo "mestre" PID do Nginx:
ps ax | grep nginx
e encontre o PID de processo "mestre" na saída. Vamos supor que seja 123.
Envie então o sinal USR2
para o processo mestre:
kill -USR2 123
Você pode analisar error.log
do Nginx e a lista de processses ( ps ax | grep nginx
) para garantir que uma nova instância do Nginx tenha sido iniciada.
Emitir WINCH
signal:
kill -WINCH 123
Agora, a nova instância do Nginx receberá solicitações. E o antigo trabalhador processa o desligamento normalmente. Novamente, revise error.log
para garantir que tudo corra bem.
E finalmente,
kill -QUIT 123
desligará o antigo mestre Nginx. Depois disso, seu sistema tem o novo Nginx instalado e em execução.
Este procedimento garante que todas as conexões sejam atendidas sem interrupções.