Py004-01-03僵尸进程和孤儿进程
了解的知识点
例子
一个父进程,在运行中开启了10个子进程,这10个子进程运行跟父进程就没关系了,相互独立
但是:父进程毕竟是子进程的爹,有这么一个需求——查看子进程的状态
- 假设子进程运行完后就把子进程的所有状态信息清空掉?可能吗?
此时作为父进程就看不到子进程的状态信息
僵尸进程
就算子进程死了,但是它相关的状态信息不能全部清除掉,要留着——尸体(方便父进程查看)
谁来给子进程收尸呢?
父进程结束的时候,将子进程的信息清除掉
僵尸进程有害吗?
如果父进程一直不死,子进程就一直无法释放。
有害,每个进程占据一个pid如果没有及时清除,积累过多的进程就会导致新进程无法开启。
孤儿进程
子进程没死,父进程先死了
谁收留孤儿
如果是linux系统,会有一个init进程(所有进程的爹),如果子进程的父进程死了,就由init来接管。
由init进程发起系统调用回收子进程
孤儿进程有害吗?
无害,由init负责回收