我将有一个用于处理网络服务器重新启动的父进程。它将向子级发出信号以停止侦听新请求,子级将向父级发出信号以表明其已停止侦听,然后父级将向新子级发出信号以表明其可以开始侦听。通过这种方式,我们可以实现该级别重新启动的停机时间少于 100 毫秒(我也有零停机孙子重新启动,但这并不总是足以重新启动)。
当需要关闭时,服务管理器将杀死父进程。孩子如何检测到父母已经结束了?
使用子进程的 stdin 和 stdout 发送信号。也许我可以检测到标准输入流的结尾?我希望避免轮询间隔。另外,如果可能的话,我希望这是一个非常快速的检测。
一个更简单的解决方案可能是在子进程中注册“断开连接”
process.on('disconnect', function() {
console.log('parent exited')
process.exit();
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)