创建一个临时僵死进程

来源:互联网 发布:网络知识竞赛平台 编辑:程序博客网 时间:2024/06/09 20:10

僵死进程定义

在Unix术语中一个已经中止、但是其父进程尚未对其进行善后处理(获取终止子进程的有关信息、释放它仍占用的资源)的进程被称为僵死进程(可以用ps查看僵死进程,它的状态为Z)

实现

int main(void) {    pid_t pid;    if((pid = fork()) < 0) {        err_sys("fork error");//fork创建子进程失败    }else if(pid == 0) {        printf("i am child");        exit(0);//子进程退出    }else {        sleep(30);//将父进程休眠30s,在这30s之内子进程成为僵死进程,可用ps命令查看        printf("i am parent");    }    waitpid(pid,NULL,0);//处理子进程    exit(0);}

在子进程退出,父进程还在休眠的时候使用ps axu命令可以看到我们创建的几个进程里有一个进程的状态为Z,即为僵死进程,在父进程休眠结束后会被waitpid()处理掉。