Linux下的僵尸进程与孤儿进程

什么是僵尸进程(zombie)

    僵尸进程指:一个进程使用fork()创建子进程,如果子进程退出,而父进程并没有调用wait()或waitpid()获取子进程的状态信息,那么子进程的某些信息如进程描述符等仍然保存在系统中。这种进程称为僵尸进程。

先看一个例子:

Linux下的僵尸进程与孤儿进程_第1张图片

看一下运行结果:

Linux下的僵尸进程与孤儿进程_第2张图片

僵尸进程的危害

       僵尸进程会在系统中保留某些信息如进程描述符、进程id退出状态等,例如系统中可用的进程id是有限的,如果由于系统中产生大量的僵尸进程占用了进程id,就会导致没有可用的进程id,系统也就不能产生新的进程;


什么是孤儿进程 

      孤儿进程指:当一个子进程的父进程结束时,子进程还在运行,此时,这个子进程就叫做孤儿进程。最后,孤儿进程会被init进程(进程id为1)进程收养,即将init作为孤儿进程的父进程,当子进程结束时,由init进程完成对它的状态收集工作。因此,孤儿进程是无害的。

看一个例子:

Linux下的僵尸进程与孤儿进程_第3张图片

再看下运行结果:

Linux下的僵尸进程与孤儿进程_第4张图片


你可能感兴趣的:(Linux,操作系统)