进程僵尸
进程的僵尸状态是指当进程退出时并且父进程没有读取子进程退出的返回代码就会产生僵尸状态,僵尸进程会以终止状态一直保持在进程表中,并且会一直等待父进程读取退出状态代码。故只要父进程不读取子进程状态,子进程就会一直保持僵尸(Z)状态。
进程僵尸的危害
进程的退出状态是必须维持下去的,因为它要告诉父进程交给它的任务办的怎么样了。若父进程一直不读取子进程的状态,使子进程一直保持僵尸状态,就会导致资源无法回收,可能导致内存泄露。
孤儿进程
孤儿进程是指父进程比子进程先一步退出,导致子进程变成“孤儿状态”,这时子进程被一号进程init进程收养,父进程变为init进程,然后退出时被init进程回收。
进程等待
之前讲过,子进程退出,父进程如果不管不顾,就可能造成‘僵尸进程’的问题,进而造成内存泄漏。
另外,进程一旦变成僵尸状态,那就刀枪不入,“杀人不眨眼”的kill -9 也无能为力,因为谁也没有办法杀死一个已经死去的进程。
最后,父进程派给子进程的任务完成的如何,我们需要知道。如子进程运行完成,结果对还是不对, 或者是否正常退出。
父进程通过进程等待的方式,回收子进程资源,获取子进程退出信息