僵尸进程

在解释僵尸进程的概念之前,我们得先了解这样的一个事实:
一个进程在由于某种原因终止后并不会像大多数人认为的那样立即被内核从系统中清理掉,而是被保持在一种已终止的状态中,等待着被它的父进程来回收。在被父进程回收后,内核会将它的退出状态传递给父进程,然后才把它抛弃掉。也只有从此刻开始,该终止进程才真正意义上的消失了。
根据这个事实,不难得出僵尸进程的大致概念,即已终止但还未被回收的进程。因为它还需要内核来保留它的某些状态以让父进程回收,所以它会消耗部分资源。因此对于长时间运行的程序,如外壳或服务器等,总是应该回收僵尸进程。如果父进程在回收它的僵尸子进程之前就被终止了, 那么内核会调用init进程(PID为1,并且是在系统初始化时由内核创建)来回收它们。

猜你喜欢

转载自aisxyz.iteye.com/blog/2300323