孤儿进程:
#父进程在子进程还在运行前退出,最后会被init进程接管,init以父进程的身份处理子进程运行完毕后遗留状态信息
僵尸进程:
#一直创建子进程,不回收子进程运行完毕后的状态信息,从而导致大量的僵尸进程,不能产生新的进程
孤儿进程:一个父进程退出,而父进程还要多个子进程还在运行,那么这么子进程将成为孤儿进程。孤儿进程被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作,init将会以父进程的身份对僵尸状态的子进程进行处理。
任何一个子进程(init除外)在exit()之后,并非马上就消失掉,而是留下一个称为僵尸进程(Zombie)的数据结构,等待父进程处理。
如果父进程在子进程结束之前退出,则子进程将由init接管。init将会以父进程的身份对僵尸状态的子进程进行处理。
"""
"""
僵尸进程:一个进程使用fork创建子进程,如果子进程退出,而父进程并没有调用wait或waitoid获取子进程的状态信息,那么子进程的进程描述符仍然保存着系统中,这种进程称为僵尸进程
如果进程不调用wait / waitpid的话, 那么保留的那段信息就不会释放,其进程号就会一直被占用,但是系统所能使用的进程号是有限的,如果大量的产生僵死进程,将因为没有可用的进程号而导致系统不能产生新的进程. 此即为僵尸进程的危害,应当避免。
详情点击:孤儿进程与僵尸进程详解