linux系统中任何一个进程都有一个父进程,任何一个进程退出时(死亡!)内核都为其保存了一定量的信息
(这些信息至少包括:进程ID,终止状态,CPU时间等)。
这些信息会被内核一直保持直到被其父进程取走(收尸!)。
僵尸进程可以这样理解(这样很容易理解):死了没人给收尸,最后变成僵尸!
进程结束到其信息被父进程取走这段时间此进程的状态被称之为“僵尸进程”(zombie,也叫僵死进程)。
将信息取走的方法就是我们熟悉的函数waitpid:
NAME
wait, waitpid, waitid - wait for process to change state
SYNOPSIS
#include <sys/types.h>
#include <sys/wait.h>
pid_t wait(int *status);
pid_t waitpid(pid_t pid, int *status, int options);
int waitid(idtype_t idtype, id_t id, siginfo_t *infop, int options);