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

看一下运行结果:

僵尸进程的危害
僵尸进程会在系统中保留某些信息如进程描述符、进程id退出状态等,例如系统中可用的进程id是有限的,如果由于系统中产生大量的僵尸进程占用了进程id,就会导致没有可用的进程id,系统也就不能产生新的进程;
什么是孤儿进程
孤儿进程指:当一个子进程的父进程结束时,子进程还在运行,此时,这个子进程就叫做孤儿进程。最后,孤儿进程会被init进程(进程id为1)进程收养,即将init作为孤儿进程的父进程,当子进程结束时,由init进程完成对它的状态收集工作。因此,孤儿进程是无害的。
看一个例子:

再看下运行结果:


本文介绍了僵尸进程和孤儿进程的概念及特点。僵尸进程是子进程退出但父进程未收集其状态信息的情况,可能导致系统资源浪费。孤儿进程则是父进程结束后仍存活的子进程,最终会被init进程接管,通常不会造成问题。
1295

被折叠的 条评论
为什么被折叠?



