Py004-01-03僵尸进程和孤儿进程

了解的知识点

例子

一个父进程,在运行中开启了10个子进程,这10个子进程运行跟父进程就没关系了,相互独立

但是:父进程毕竟是子进程的爹,有这么一个需求——查看子进程的状态

  • 假设子进程运行完后就把子进程的所有状态信息清空掉?可能吗?

此时作为父进程就看不到子进程的状态信息

僵尸进程

就算子进程死了,但是它相关的状态信息不能全部清除掉,要留着——尸体(方便父进程查看)

谁来给子进程收尸呢?

父进程结束的时候,将子进程的信息清除掉

僵尸进程有害吗?

如果父进程一直不死,子进程就一直无法释放。

有害,每个进程占据一个pid如果没有及时清除,积累过多的进程就会导致新进程无法开启。

孤儿进程

子进程没死,父进程先死了

谁收留孤儿

如果是linux系统,会有一个init进程(所有进程的爹),如果子进程的父进程死了,就由init来接管。

由init进程发起系统调用回收子进程

孤儿进程有害吗?

无害,由init负责回收