当子进程执行完毕退出后, 父进程需要调用wait命令来读取子进程的退出状态, 并将子进程从进程表中移除.
如果父进程未能读取到子进程的Exit信号, 该子进程并不会从进程表中移除, 即处于僵尸状态Z.
僵尸进程不做任何事情, 不占用任何资源(CPU和内存), 也不会影响其他进程. 但是僵尸进程的一些进程信息依然保存在系统进程表中, 占用些许内存.
同时还占用了进程ID, 当僵尸进程数量太多了, 会导致后续系统进程ID分不出来而创建进程失败.
可以使用如下命令找出僵尸进程:
僵尸进程不能被kill掉, 要清除僵尸进程必须将其父进程杀死, 使僵尸进程成为孤儿进程, 孤儿进程将被init进程接管, init进程会wait进程的退出状态并清理进程表.