init 的孩子们,你们已经死了!为什么还不离去?!

2017-02-13 14:58:59 +08:00
 MartinWu
情况是这样的,之前出现过大量 sshd 僵尸,我现在想重现这种情况,实现的是:

init 进程的一些子进程为 Z 状态,并一直保持住。

求大神指教。
4297 次点击
所在节点    Linux
10 条回复
Siril
2017-02-13 16:27:12 +08:00
得散点纸钱才行
linbiaye
2017-02-13 16:30:10 +08:00
不重启还能咋办,至多社区报个 bug.
dbg
2017-02-13 17:24:08 +08:00
我还以为是 init 和 systemd 的引战帖子。
MartinWu
2017-02-13 18:04:26 +08:00
@linbiaye 我现在想重现这种情况。就是怎么样才能实现这种状况。
MartinWu
2017-02-13 18:04:43 +08:00
@dbg 我承认我标题党了~~
hareandlion
2017-02-13 18:37:53 +08:00
死了变僵尸活着
loading
2017-02-13 18:39:34 +08:00
@dbg 我也是。
MartinWu
2017-02-13 19:55:07 +08:00
现在的一些线索导向,可能是 supervisor 的锅。两次都是在 supervisord 上面重启过所有的 app 后,僵尸进程就突然消失了。。然而, supervisord 并没有用 root 启动,而是一个没权限切到 root 的普通账号。
MartinWu
2017-02-13 19:55:20 +08:00
还在继续跟踪。。
Siril
2017-02-14 16:17:17 +08:00
https://www.google.com/search?q=how+to+create+zombie+process&ie=utf-8&oe=utf-8&client=firefox-b-ab

据说是这样,未亲手验证:
先 fork 出一个子进程,
然后父进程 sleep ,子进程 exit ,
子进程就 zombie 了。

然后根据这个:
https://www.google.com/search?q=how+to+create+zombie+process&ie=utf-8&oe=utf-8&client=firefox-b-ab#q=cleanup+zombie+process
干掉父进程,子进程会被 init 接管,然后会被 wait 后清除。
所以? init 接管后还有一大堆 zombie ? 哪里的 bug 呢

试试这个:
https://stackoverflow.com/questions/20535438/cant-cleanup-a-zombie-process-whose-parent-is-init

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/340136

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX