代码之家  ›  专栏  ›  技术社区  ›  GetFree

父进程被杀死时,用fork()创建的子进程是否自动被杀死?

  •  30
  • GetFree  · 技术社区  · 16 年前

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

    谢谢。


    预先存在的类似问题:

    1 回复  |  直到 16 年前
        1
  •  38
  •   Dan D.    6 年前

    否。如果父进程被杀死,子进程将成为init进程的子进程(进程ID为1,由内核作为第一个用户进程启动)。

    init进程定期检查新的子进程,并等待它们(从而释放由它们的返回值分配的资源)。

    这个问题已经在这里讨论过了,并给出了高质量的答案: How to make child process die after parent exits?