僵尸进程即为进程已经执行完毕,但是其父进程没有调用wait/waitpid,则该进程将变成一个僵尸进程,虽然没有执行,但占用系统中的一个PCB空间。僵尸进程多的话,可以将系统卡死。
僵尸进程的实现为:使用folk创建一个子进程,让子进程进来之后很快就退出,父进程什么也不做,即没有调用wait/waitpid,所以该子进程就成为了一个僵尸进程。
int main()
{
pit_t id=folk();//folk返回两个值,给父进程返回子进程的pid,给子进程返回0,所以返回0表示子进程创建成功。
if(id == 0)
{
printf("this is child process\n");
exit(1);
}
else
sleep(1000);
return 0;
}
然后我们可以用ps -ef查

僵尸进程是指已执行完毕但其父进程未调用wait/waitpid的进程,占用系统资源可能导致系统卡死。孤儿进程是父进程退出后仍在运行的子进程,会被init进程领养。通过ps命令可检测并杀死僵尸进程,孤儿进程则由init接管并处理。

9128

被折叠的 条评论
为什么被折叠?



