1
firebroo 2019-05-21 17:14:52 +08:00
本身可以设计为让系统没有僵尸进程,但是为了让父进程可以拿到子进程退出之后的信息,就保留了一些资源,必须在父进程手动 wait 子进程这些资源才会被释放。你如果没有这部操作就会僵尸进程了。init 进程没有的原因是他会一直 wait 子进程。
|
2
geelaw 2019-05-21 17:21:14 +08:00
因为 init 进程遵守游戏规则——规则就是你应该关掉你不需要的 kernel handle。
令我困惑的一个事情是,为什么进程 handle 的泄露在 *nix 世界还有一个单独的名字——在 Windows 的世界里,这和你忘了关掉一个 event 的 handle 或者忘了关掉 file 的 handle 是一样的。 |
6
iwtbauh 2019-05-21 18:14:55 +08:00 via Android
这和 init 没关系啊
你可以自己写一个 init 啊,然后到时候不 wait 任何进程,然后再 fork 几次。看看没有有僵死进程。 |