僵尸进程

本文介绍了Linux操作系统中的僵尸进程和孤儿进程概念。当子进程先于父进程结束时,若父进程未获取其退出码,子进程成为僵尸进程。孤儿进程则是父进程先结束,子进程被INIT进程收养。通过示例代码展示了如何产生僵尸进程,并解释了解决僵尸进程的方法,即在父进程中使用wait方法接收子进程的退出码。
摘要由CSDN通过智能技术生成

僵尸进程

在父进程中fork一个子进程,当子进程执行完成执行exit(0)后,将子进程的退出码存储在与之对应的PCB中。父进程则通过wait来获取退出码,并根据退出码来了解子进程的信息。

僵尸进程的概念:当子进程先于父进程结束时,父进程没有获取到子进程的退出码
孤儿进程的概念:父进程先于子进程结束,此时将由一个个叫INIT(pid=1,第一个被fork出来的进程) 的进程来“收养”这个孤儿进程。
我们将通过一段代码来了解僵尸进程:

让子进程运行打印三次先于父进程结束,每fork一次 我们都活会打印出进程的和它的父进程的pid在这里插入图片描述

在运行程序时,将其放在后台运行(只需在后面加上&即可),可以看到,首先打印的是父亲进程,它的pid为3522,父亲进程的父进程是3483。在登陆Linux后,会获得一个叫做bash的进程,bash进程繁衍出其他所有进程。我们前面讲到的INT进程就是bash复制出来的第一个进程。所以父进程会有系统来做处理,我们关注的只是父进程复制出来的子进程。

在这里插入图片描述
我们在执行ps命令时会发现有两个text进程,那其实就是我们的父子进程。再看

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值