无法检测节点js中的退出事件

时间:2017-03-01 16:29:09

标签: node.js azure

我在Azure(Microsoft服务器)上托管了一个节点js express app。出于某种原因,我感觉应用程序偶尔重启一次,我想抓住并记录此事件。所以我试试这个,但它不起作用:

process.on('exit', function (code) {
    var exitMsg = 'Process exited with code ' + code;

    // log exitMsg synchronously
});

据我所知,在Windows上捕获退出事件存在一些问题。也许你有一些解决方案?感谢。

2 个答案:

答案 0 :(得分:0)

我认为您可能正在寻找'SIGINT'事件。它会在您的应用被中断或取消时发生。

process.on('SIGINT', () => {
  console.log('Process Interrupted, exiting');

  // eventually exit
  process.exit(); // Add code if necessary
});

值得注意的是,如果您使用IISNode在IIS中托管您的应用程序,这可能无法正常工作。

答案 1 :(得分:0)

在蔚蓝/胜利时,这可能会有所帮助:

if (process.platform === "win32") {
  require("readline")
    .createInterface({
      input: process.stdin,
      output: process.stdout
    })
    .on("SIGINT", function () {
      process.emit("SIGINT");
    });
}