🔥博客主页: 我要成为C++领域大神
🎥系列专栏:【C++核心编程】 【计算机网络】 【Linux编程】 【操作系统】
❤️感谢大家点赞👍收藏⭐评论✍️本博客致力于知识分享,与更多的人进行学习交流
Orphan孤儿进程
父进程先于子进程异常退出,子进程被托管给托管进程,子进程成为活态进程,失去管理,这种进程称为孤儿进程(Orphan Process)。
Ubuntu16.04托管进程为upstart进程,14.04版本托管进程为init进程
孤儿进程是异常进程模型的残留,会影响新进程的创建与使用。这种活态进程的危害是有弹性的,取决于孤儿进程的作业,如果孤儿进程被设置大量频繁的申请占用系统资源,那么这种孤儿进程危害极大。
下面是一个产生孤儿进程的demo程序:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/types.h>
#include <string.h>
#include <sys/fcntl.h>
int main()
{
pid_t pid;
pid=fork();
if(pid>0){
printf("Parent PID:%d\n",getpid());
sleep(10);
exit(0);
}else if(pid==0){
printf("Child PID:%d PPID:%d\n",getpid(),getppid());
sleep(11);
printf("Child PID:%d PPID:%d\n",getpid(),getppid());
}else{
perror("fork call failed");
exit(0);
}
return 0;
}
1543号进程为upstart托管进程

最低0.47元/天 解锁文章
2760





