假设我有一个进程恰好产生一个子进程。现在,当父进程因任何原因(正常或异常,通过 kill、^C、断言失败或其他任何原因)退出时,我希望子进程终止。如何正确地做到这一点?
关于stackoverflow的一些类似问题:
- (之前问过) 当父进程退出时,如何使子进程退出?
- (稍后问) 当父进程被杀死时,使用 fork() 创建的子进程是否会自动被杀死?
关于 Windows 的 stackoverflow 的一些类似问题:
原文由 Paweł Hajdan 发布,翻译遵循 CC BY-SA 4.0 许可协议
孩子可以通过在
prctl()
系统调用中指定选项PR_SET_PDEATHSIG
来要求内核传递SIGHUP
(或其他信号),如下所示:prctl(PR_SET_PDEATHSIG, SIGHUP);
详见
man 2 prctl
。编辑:这是仅限 Linux