僵尸进程
在Linux中,进程分为多种状态,例如:
R (running):运行状态、
S (sleeping):睡眠状态(浅度睡眠)、
D (disk sleep):磁盘睡眠状态、
T (stopped):停止进程、
X (dead):死亡状态、
Z (zombie):僵死状态等等。
僵死状态是一个比较特殊的状态:当进程退出并且父进程(使用wait()系统调用)没有读取到子进程退出的返回代码时就会产生僵尸进程。僵尸进程会以终止状态保持在进程表中,并且会一直等待父进程读取退出状态代码。如果其父进程还存在而一直不调用wait,则该僵尸进程将无法回收,等到其父进程退出后该进程将被init回收 。
代码实现:
运行结果: