我将有一个父进程用于处理 web 服务器重启。它会向子进程发出停止监听新请求的信号,子进程会向父进程发出停止监听的信号,然后父进程会向新子进程发出可以开始监听的信号。这样,我们可以在不到100毫秒的时间内完成该级别的重启(我还有一个零停机的孙子级别的重启,但这并不总是足够的)。
当服务管理器决定关闭时,它会杀死父进程。子进程如何检测父进程已经结束?
这些信号是通过子进程的标准输入和标准输出发送的。也许我可以检测 stdin 流的结束?我希望避免轮询间隔。此外,如果可能的话,我希望这是一种真正快速的检测方法。
当服务管理器决定关闭时,它会杀死父进程。子进程如何检测父进程已经结束?
这些信号是通过子进程的标准输入和标准输出发送的。也许我可以检测 stdin 流的结束?我希望避免轮询间隔。此外,如果可能的话,我希望这是一种真正快速的检测方法。