Node.js can';无法在nodeJS中获取pm2退出或停止事件 我在nodeJS中使用pm2来保持服务器启动 上传到服务器上的代码并运行命令pm2 start app.js--name appName 但在某些情况下,当代码中出现错误或其他错误时,pm2会停止或杀死所有进程 当时我想发邮件告诉大家,pm2进程是停止还是停止

Node.js can';无法在nodeJS中获取pm2退出或停止事件 我在nodeJS中使用pm2来保持服务器启动 上传到服务器上的代码并运行命令pm2 start app.js--name appName 但在某些情况下,当代码中出现错误或其他错误时,pm2会停止或杀死所有进程 当时我想发邮件告诉大家,pm2进程是停止还是停止,node.js,pm2,Node.js,Pm2,我在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); Logge

我在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停止或杀死时的任何事件


您可以监听节点进程事件,并注册回调功能,请查看下面的代码

**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);
         });

我也有同样的问题