我有一个情况。父进程创建子进程,并监视它并在子进程终止时重新启动子进程。我没有问题。
另一方面,当父进程终止(崩溃或正常退出)时,子进程立即退出。
在Windows上,这很容易,启动一个新线程并等待终止
HANDLE hProcess = OpenProcess(SYNCHRONIZE, FALSE, dwPid);
if( hProcess ){
WaitForSingleObject( hProcess, INFINITE);
CloseHandle(hProcess);
}
但在Linux上,我发现这并不容易。
现在我必须设置一个计时器并每隔几秒检查一次父进程。
if( -1 == kill( pid, 0) && errno == ESRCH ){
exit(2);
}
这很难看,我无法立即获得父终止通知。 请问有没有其他方法在Linux上帮助我实现这个而不经常查找?