我想要从主进程优雅地退出子进程,其中主进程和子进程的代码位于不同的.js文件中。
master.js
我尝试了各种信号,如cluster.worker.on('exit')、process.on('exit')、process.on('disconnect')等,但似乎都没有触发。有什么想法吗?
worker.send()在执行期间有效,但在SIGINT函数中无效?
cluster.setupMaster({
exec : 'child.js',
args : [],
silent : false
});
cluster.fork({'some': 'info'});
process.on('SIGINT', function() {
console.log('\nshutting down services ...');
function eachWorker(callback) {
for (var id in cluster.workers) {
callback(cluster.workers[id]);
}
}
eachWorker(function(worker) {
worker.kill();
});
process.exit(0);
})
child.js
cluster.worker.on('disconnect', function() {
console.log(cluster.worker.id + ' shutting down.');
})
我尝试了各种信号,如cluster.worker.on('exit')、process.on('exit')、process.on('disconnect')等,但似乎都没有触发。有什么想法吗?
worker.send()在执行期间有效,但在SIGINT函数中无效?