在 Solaris 10 上,我有一个父进程和子进程。我用 kill -KILL 杀死子进程。我希望在父进程中尽可能快地检测到这一点(这是一个主/从系统,目标是让父进程请求其备份尽快接管)。父进程需要知道子进程已经开始退出(不需要等到子进程退出)。
在我正在使用的系统中,我看到发送 SIGKILL 和接收 SIGCHLD 的父进程之间有大约 200 毫秒的延迟。我不认为我可以减少这个时间,仅仅是因为子进程的大小和退出所需的时间 - 如果我错了,请纠正我。
我认为我的选择是: - 不要向孩子发送 SIGKILL。而是向父进程发送一个信号,以便它可以杀死子进程(因此立即知道子进程正在被终止)。这并不理想,因为某些“kill -KILL”命令超出了我的控制范围,因此我无法将它们替换为对父级的不同信号。-- 挂钩子进程的终止处理(我认为这是不可能的,因为 SIGKILL 无法被捕获)。——还有什么想法吗?
感谢您的任何建议。尼克B