孤儿进程
孤儿进程: 父进程先于子进程结束,则子进程成为孤儿进程,子进程的父进程成为init进程,称为init进程领养孤儿进程。
#include<stdlib.h>
#include<stdio.h>
#include<unistd.h>
int main()
{
pid_t pid;
pid = fork();
if(pid==-1)
{
perror("fork:");
exit(1);
}
else if(pid>0)
{
sleep(1);//
printf("i am parant.\n");
}
else
{
printf("i am child.pid=%ld,ppid=%ld\n",getpid(),getppid());
sleep(3);
printf("i am child.pid=%ld,ppid=%ld\n",getpid(),getppid());
}
return 0;
}
打印结果,发现父进程先结束,子进程后结束,子进程的父进程改变了。:
[root@FOSDEV test2]# ./orphan
i am child.pid=423,ppid=422
i am parant.
[root@FOSDEV test2]# i am child.pid
本文深入探讨了Linux操作系统中的两种特殊进程状态——孤儿进程和僵尸进程。孤儿进程是指其父进程先于它结束,由init进程接管。而僵尸进程则是在进程终止后,其父进程未进行回收,导致资源占用。僵尸进程无法通过kill命令清除,必须由其父进程回收。通过示例代码展示了孤儿和僵尸进程的产生过程。
最低0.47元/天 解锁文章

1277

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



