Linux进程讲解 四 孤儿进程

本文详细介绍了Linux中的孤儿进程,孤儿进程是指父进程死亡但子进程仍然存在的过程。与僵尸进程不同,孤儿进程会被init进程收养,处理其善后工作,通常不构成系统危害。文中通过实例演示了如何创建孤儿进程,并使用ps命令观察孤儿进程的PPID变化,以理解init进程在孤儿进程管理中的角色。
摘要由CSDN通过智能技术生成

  上次我们介绍了僵尸进程,僵尸进程是进程的一种状态,我们今天说的是孤儿进程,孤儿进程并不是进程的一种状态,它是一类进程的名字,僵尸进程是因为我们的子进程突然死亡,并且我们的父进程没有查看他的死亡原因,他就会一直保留着自己的task_struct里边存储着他的一些死亡信息等等,这就形成了僵尸进程,孤儿进程和僵尸进程相反,孤儿进程顾名思义就是我们的父进程死亡了,但是我们的子进程依然存在,孤儿进程最后都会由pid=1的init进程收养,并且在子进程结束之后由init进程给他“收尸”,因此一般来说孤儿进程是没有什么危害的。

  这里我们通过一段程序来制造一个孤儿进程。

 1 #include<stdio.h>

  2 #include<stdlib.h>

  3 #include<unistd.h>

  4 #include<string.h>

  5 #include<errno.h>

  6

  7 int main()

  8 {

  9    pid_t id=fork()

 10    if(id<0)

 11    {

 12        perror("fork erroe\n");

 13        return -1;

 14    } else if(id==0)

 15    {

 16        printf("child: %d\n",getpid());

 17        sleep(30);

 18    }

 19    else

 20    {

 21      printf("parent: %d\n",getpid())
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值