node.js pm2 при выходе

Я использую pm2 для запуска приложения node. Я должен сохранить данные, прежде чем приложение будет закрыто. Этот код отлично работает в оболочке:

process.on('exit', function(){
    log.debug('exit');
});

process.on('SIGINT', function(){
    log.debug('SIGINT');
});

process.on('uncaughtException', function(){
    log.debug('uncaughtException');
});

Когда я останавливаю приложение с помощью «pm2 stop», код не работает. Я думаю, что pm2 убивает процесс.


person Sannin    schedule 02.10.2014    source источник


Ответы (1)


SIGINT обычно запускается после завершения работы, вызванного пользователем (например, Ctrl+C). Предположим, что pm2 вызывает внезапное завершение работы, тогда SIGINT не будет активировано.

Вместо этого вы должны слушать сигнал завершения SIGTERM, который должен охватывать оба сценария.

process.on('SIGTERM', function() {
    // clean up
});
person James    schedule 02.10.2014