用fork()创build的subprocess在父进程中被自动杀死?

我用C / C ++中的fork()创buildsubprocess。
当父进程结束(或由于某种原因而被终止)时,我希望所有subprocess都被终止。
这是由系统自动完成的吗? 或者我必须自己做?

谢谢。


预先存在类似的问题:

  • 父母如何才能导致subprocess退出?
  • 父母退出后如何让孩subprocess死亡?

Solutions Collecting From Web of "用fork()创build的subprocess在父进程中被自动杀死?"

否。如果父项被杀害,则子项成为init进程的子项(即进程ID为1,并作为内核的第一个用户进程启动)。

init进程会定期检查新的子进程,如果已经退出,则会终止进程(从而释放由其返回值分配的资源)。

这个问题已经在这里讨论过质量问题了: 如何在父母退出后让子进程死掉?