I'm creating child processes with fork() in C/C++.
When the parent process ends (or is killed for some reason) I want all child processes to be killed as well.
Is that done automatically by the system? Or I have to do it myself?


先前存在的类似问题:

推荐答案

否.如果父进程被终止,子进程将成为init进程的子进程(进程id为1,由内核作为第一个用户进程启动).

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

这里已经讨论了这个问题,并给出了高质量的答案:

Linux相关问答推荐

在同一目录中未检测到G++预编译头

条件句if的正确写法是怎样的?

Postfix 连接到 domain.com[74.208.61.85]:587: 连接被 dovecot、opendkim 和 SSL 拒绝

为什么 linux shell diff 命令有时会显示与空行相关的输出,即使存在 -B(--ignore-blank-lines)选项?

操作系统信号处理循环 - 阻塞或非阻塞读取?

linux shell 脚本获取文件夹中

如何更改文件的上次访问/修改/更改日期?

8 个半小时范围的 Crontab 表达式

在 bash 中获取目录或文件的基本名称的快速且正确的方法

如何拆分多个分隔符但将它们保留在方括号之间?

从 bash shell 等效项在fish shell 上设置 $ANDROID_SDK_ROOT

Docker 容器立即退出

如何判断 Linux 机器是否支持 AVX/AVX2 指令?

使用 rc.local 运行脚本:脚本有效,但在启动时无效

通过 VM 的 Centos - 镜像列表中没有 URL

为什么`du`的输出通常与`du -b`如此不同

从bash中的字符串中删除所有特殊字符和大小写

Linux 守护进程

如何在 UNIX 中将字符串转换为整数

仅当文件存在于 shell 脚本中时才移动