我正在用fork()
C/C++ 创建子进程。
当父进程结束(或由于某种原因被杀死)时,我希望所有子进程也被杀死。
是系统自动完成的吗?还是我必须自己做?
预先存在的类似问题:
我正在用fork()
C/C++ 创建子进程。
当父进程结束(或由于某种原因被杀死)时,我希望所有子进程也被杀死。
是系统自动完成的吗?还是我必须自己做?
预先存在的类似问题:
不会。如果父进程被杀死,子进程将成为 init 进程的子进程(进程 id 为 1 并由内核作为第一个用户进程启动)。
init 进程定期检查新的子进程,并等待它们(从而释放由它们的返回值分配的资源)。
这个问题已经在这里用高质量的答案进行了讨论: How to make child process die after parent exits?