首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当父进程被"kill -9“杀死时,子进程也会被杀死吗?

问当父进程被"kill -9“杀死时,子进程也会被杀死吗?
EN

Stack Overflow用户
提问于 2009-09-29 10:13:55
回答 5查看 20.9K关注 0票数 23

我的一个同事今天早上告诉我,当他用"kill -9“杀死supervisord时,supervisord的子进程并没有被杀死。

他很确定这一点,但我尝试了很多次,都没有发现这一点。

那么,当父进程被"kill -9“杀死时,linux会确保它的子进程也被杀死吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-09-29 10:21:07

您必须使子进程守护进程,以便在父进程被杀死(或死亡)时将其杀死,否则它们将被init(1)采用。

票数 20
EN

Stack Overflow用户

发布于 2009-09-29 10:17:27

不,父进程被终止时,子进程不一定会被终止。

但是,如果子进程打开了一个它正在写入的管道,并且父进程正在读取数据,那么当它下一次尝试写入该管道时,它将获得一个SIGPIPE,对于该管道,默认操作是终止它。这是实践中经常发生的事情。

票数 24
EN

Stack Overflow用户

发布于 2009-09-29 10:48:53

在UNIX上,父进程和子进程的生命周期之间没有强制关系。严格地说,进程只有在调用exit()或接收到默认操作要终止的未处理信号时才会终止。

然而,当用户在该终端上点击ctrl-C、ctrl-\等时,“控制终端”中的整个“前台进程组”可以接收像SIGINT和SIGQUIT这样的信号。特定的行为部分由登录shell实现(在tty驱动程序的帮助下)。细节可能相当复杂:查看here和here

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1491674

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档