Você precisa de três coisas:
-
O PID do seu servidor nginx. Armazenado em:
/var/run/nginx.pid
-
Um comando para enviar um
SIGHUP
(1
) para o processo com esse PID:kill -1 $(cat /var/run/nginx.pid)
-
Uma maneira de o node.js enviar o
kill
. Eu iria com um processo filho .
Eu não sou um desenvolvedor de nós. Não tenho como colocá-los juntos em algo que faça sentido, mas é o que você faria se soubesse o que estava fazendo.
Ah, e o seu servidor nginx e o aplicativo Node.JS precisam estar rodando como o mesmo usuário para permitir que o Node envie o sinal . Isso é facilmente feito, mas pode ter ramificações de segurança. Você pode, em vez disso, querer fazer um script SUID para o Node chamar, mas, se feito de maneira descuidada, isso também pode ter ramificações de segurança.
Como alternativa, você pode usar o % móduloprocess
para executar process.kill(...)
. Você ainda precisará ler o PID para o nginx e as permissões ainda precisam ser classificadas.
Algo parecido com isto (mais uma vez, eu ainda não sou um Node dev, então isso pode estar sintaticamente incorreto):
var fs = require('fs'),
process = require('process');
process.kill(fs.readFileSync('/var/run/nginx.pid', "utf8"), 'SIGHUP');