使用 node.js 在进程终止时执行事件

execute event on process termination with node.js

node.js 有没有办法在进程终止时执行事件?例如,当 express 服务器在控制台中运行并且我点击 CTRL+C 它应该在某处写入日志。

我用 process.on('exit', ... 试过了,但没有用。我认为这仅在 process.exit() 上执行。所以我正在寻找一种通用方法来检测进程的终止或 kill

您可以使用 SIGINT

捕获 Ctrl + C
process.on('SIGINT', () => {
  console.log('Log that Ctrl + C has been pressed');
})

然而,这会阻止默认操作,因此您还必须在记录消息后调用 process.exit()

这只会捕获 Ctrl + C,但它不会捕获 Windows 等中的 End Task 之类的东西

您可能还想在 SIGTERM(在 linux 终止)、SIGHUP(在 windows 关闭控制台)和 SIGBREAKCtrl+Break 在 Windows)