我使用pm2来运行节点应用程序。我必须在应用程序关闭之前保存数据。这段代码在shell中运行良好:
process.on('exit', function(){
log.debug('exit');
});
process.on('SIGINT', function(){
log.debug('SIGINT');
});
process.on('uncaughtException', function(){
log.debug('uncaughtException');
});
当我使用" pm2停止"停止应用程序时代码不起作用。我认为pm2会杀死进程。
答案 0 :(得分:6)
SIGINT
通常在用户调用关闭后触发(例如Ctrl + C)。假设pm2
触发突然关闭,则SIGINT
不会被触发。
相反,你应该听取应该涵盖两种情况的终止信号SIGTERM
process.on('SIGTERM', function() {
// clean up
});