定义:
一个已经终止,但是其父进程尚未对其进行善后处理(获取终止子进程的有关信息、释放它仍占用的资源)的进程被称为僵死进程(Zombie
Process)。
ps -eF查看
处理方法:
1.调用signal()函数忽略SIGCHLD信号。
signal(SIGCHLD,SIG_IGN);
2.调用fork()两次。
pid = fork();
if (0 > pid)
{
printf("fork() error\n");
}
else if (0 == pid)
{
//child process
if (pid = fork() < 0)
{
printf("fork() error\n");
}
else if (pid > 0)
{
exit(0);
//子子进程的父进程退出,那么子子进程由i接nit管,init会自动为它做清理。
}
}
waitpid(pid, NULL, 0);//等待子进程结束
3.用waitpid等待子进程返回。
阅读(1301) | 评论(0) | 转发(0) |