Node.js (monitor permanente) obtém o código de saída

Recentemente, estava tentando usar o forever para manter um servidor rodando em Node.js.
Meu servidor tem uma lógica de saída elegante, quando enviado o comando certo, e eu precisava monitorar para sempre para parar de monitorar o servidor quando isso acontecesse.

Escolhi usar um código de saída específico do processo do servidor para comunicar ao processo para sempre que uma saída normal foi alcançada, mas não havia nenhum evento documentado no monitor permanente que permitisse obter esse código de saída.

Explorando o código para sempre, encontrei um evento que fará isso, chamado exit:code.

Portanto, seu código pode ser assim:

var child = new (forever.Monitor)('your-server-file.js', {
max
: 3,
silent
: true,
options
: []
});

child
.on('exit:code', function (code) {
if (code == 505) // graceful exit code
{
process
.exit(1);
}
});