我正在尝试将一些关闭功能绑定(bind)到我的nodejs应用程序(版本0.8.12)。由于我正在生成大量子进程并在分布式环境中工作,因此我目前正在通过
终止应用程序var n = spawn('killall', ['node']);
问题是,显然 on('exit', ...)
逻辑不再起作用,实际上我有这样的东西:
process.on('exit', function() {
if(exit_cb)
exit_cb()
else
console.log('About to exit.');
});
每当我终止应用程序时它都不会触发。
有没有办法使用 killall
命令添加关闭钩子(Hook),或者我应该找到另一种方法来终止我的子进程以使钩子(Hook)正常工作?
谢谢
最佳答案
您需要监听 killall
默认发送的 SIGTERM
信号。但您还需要在所有作业完成后手动停止进程。
process.on('SIGTERM', function() {
if(exit_cb) {
exit_cb();
process.exit();
} else {
console.log('About to exit.');
process.exit();
}
});
关于node.js - Killall 上的 NodeJS 关闭钩子(Hook),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13395623/