我在app.js中使用pm2.connect,但是无论何时pm2停止或终止,都无法获取事件,这是代码
var pm2 = require('pm2');
pm2.connect(function() {
pm2.launchBus(function(err, bus) {
bus.on('process:event', function(data) {
console.log('IN APP ===>', data.event);
Logger.info("IN APP ====> ", data.event);
if (data.event === "exit") {
console.log('IN APP exit', data.event);
Logger.info("IN APP exit ====> ", data.event);
}
});
});
});
使用此代码,当pm2停止或终止时我无法获得任何事件
答案 0 :(得分:0)
您可以侦听节点进程事件,并注册回调函数,请检查以下代码。
** Ps:您必须在回调函数中运行process.exit();
才能关闭应用程序**
您可以致电process.exit();
而不是发回邮件
function cb () {
// Do stuff
// Send email
process.exit();
}
//do something when app is closing
process.on('exit', cb );
//catches ctrl+c event
process.on('SIGINT', cb );
// catches "kill pid" (for example: nodemon restart)
process.on('SIGUSR1', cb );
process.on('SIGUSR2', cb );
process
.on('uncaughtException', err => {
console.error(err, 'Uncaught Exception thrown');
process.exit(1);
});