3

我正在使用 pm2 来运行节点应用程序。我必须在应用程序关闭之前保存数据。这段代码在 shell 中运行良好:

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

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

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

当我使用“pm2 stop”停止应用程序时,代码不起作用。我认为 pm2 会杀死进程。

4

1 回答 1

7

SIGINT通常在用户调用关闭后触发(例如 Ctrl+C)。假设pm2正在触发突然关闭,则SIGINT不会触发。

SIGTERM相反,您应该收听应涵盖两种情况的终止信号

process.on('SIGTERM', function() {
    // clean up
});
于 2014-10-02T15:31:53.707 回答