![]() | 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 几次。看看没有有僵死进程。 |