在Linux

时间:2015-05-20 02:36:57

标签: linux

我有一个情况。父进程创建子进程,并监视它并在子进程终止时重新启动子进程。我没有问题。

另一方面,当父进程终止(崩溃或正常退出)时,子进程立即退出

在Windows上,这很容易,启动一个新线程并等待终止

HANDLE hProcess = OpenProcess(SYNCHRONIZE, FALSE, dwPid);
if( hProcess ){
        WaitForSingleObject( hProcess, INFINITE);
        CloseHandle(hProcess);
}

但在Linux上,我发现这并不容易。

  • 我试过NETLINK_CONNECTOR,但由于“权限被拒绝”而失败,我无法提升进程权限。
  • 我尝试waitpid,但它不适用于父进程

现在我必须设置一个计时器并每隔几秒检查一次父进程。

if( -1 == kill( pid, 0) && errno == ESRCH ){
     exit(2);
}

这很难看,我无法立即获得父终止通知。 请问有没有其他方法在Linux上帮助我实现这个而不经常查找?

0 个答案:

没有答案