假设我有一个进程恰好产生一个子进程。现在,当父进程因任何原因(正常或异常,通过 kill、^C、断言失败或其他任何原因)退出时,我希望子进程终止。如何正确地做到这一点?
关于stackoverflow的一些类似问题:
关于 Windows 的 stackoverflow 的一些类似问题:
最佳答案
通过在 prctl()
系统调用中指定选项 PR_SET_PDEATHSIG
,当父进程死亡时,子进程可以要求内核传递 SIGHUP
(或其他信号),如下所示:
prctl(PR_SET_PDEATHSIG, SIGHUP);
详见man 2 prctl
。
编辑:这仅适用于 Linux
关于c - parent 退出后如何使子进程死亡?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/284325/