【发布时间】:2017-03-03 14:44:17
【问题描述】:
node.js 有没有办法在进程终止时执行事件?例如,当express 服务器在控制台中运行并且我点击CTRL+C 它应该在某处写入日志。
我用process.on('exit', ... 尝试了它,但不起作用。我认为这仅在process.exit() 上执行。所以我正在寻找一种通用的方法来检测进程的终止或kill。
【问题讨论】:
标签: javascript node.js terminate
node.js 有没有办法在进程终止时执行事件?例如,当express 服务器在控制台中运行并且我点击CTRL+C 它应该在某处写入日志。
我用process.on('exit', ... 尝试了它,但不起作用。我认为这仅在process.exit() 上执行。所以我正在寻找一种通用的方法来检测进程的终止或kill。
【问题讨论】:
标签: javascript node.js terminate
您可以使用 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 上的关闭控制台)和SIGBREAK(Windows 上的Ctrl+Break)
【讨论】: