2

我正在尝试将一些关闭功能绑定到我的 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命令添加关闭钩子,或者我应该找到另一种方法来杀死我的子进程以使钩子工作?

谢谢

4

1 回答 1

3

您需要监听默认发送的SIGTERM信号killall。但是您还需要在所有作业完成后手动停止您的进程。

process.on('SIGTERM', function() {
    if(exit_cb) {
        exit_cb();
        process.exit();
    } else {
        console.log('About to exit.');
        process.exit();
    }
});  
于 2012-11-15T12:05:43.207 回答