一、概念的引入
在Linux环境中,子进程是父进程通过fork函数创建的,子进程和父进程相互独立,子进程和父进程的运行是异步的,当一个进程因为某种原因终止时,它的父进程需要调用wait()或者waitpid()系统调用取得子进程的终止状态。
1、僵尸进程
一个终止了但是没有被父进程回收的进程成为僵尸进程。
2、孤儿进程
如果一个进程正在运行但是它的父进程终止了,此时该进程就是孤儿进程,系统会安排init进程来回收孤儿进程,init进程的PID为1,是在系统启动之后由内核创建的,它永远不会终止。
二、僵尸进程和孤儿进程带来的危害
1、僵尸进程
虽然子进程已经退出了,但是在系统进程中还为它保留了一些退出状态的信息,如果父进程一直不读取这些退出状态的话,这些进程表项将一直被占用,系统进程表是一项有限资源,如果系统进程表被僵尸进程耗尽的话,系统可能无法创建新的进程。
2、孤儿进程
由于每次init进程都会回收孤儿进程,因此孤儿进程并不会造成什么危害。
三、验证僵尸进程和孤儿进程
1、验证僵尸进程
代码如下:
该程序的运行结果如下图:
如上图所示,由于子进程已经退出但是没有被父进程回收,因此成为了僵尸进程。
2、验证孤儿进程
代码如下:
该程序大的运行结果如下图:
由图可知,子进程为孤儿进程,并且他被1号进程回收。
相关推荐
强化学习-马尔可夫模型
前文提到了强化学习源自马尔可夫决策过程,本文从马尔可夫概念入手,讲解和马尔可夫有关的模型和概念。在马尔科夫决策过程中,我们有一个智能体,它在一个马尔科夫过程中进行决策,每次决策都会导致状态的转移和获得即时奖励。智能体的目标是通过选择动作来最大化未来奖励的期望值。通常马尔科夫决策过程是个五元组:SAPRγSAPRγS 表示状态集合,代表智能体可能处于的所有状态。A 表示动作集合,代表智能体可以采取的所有动作。
什么是僵尸进程与孤儿进程
当一个进程调用 exit 命令结束自己的生命时,其实它并没有真正的被销毁,内核只是释放了该进程的所有资源,包括打开的文件、占用的内存等,但是留下一个称为僵尸进程的数据结构,这个结构保留了一定的信息(包括进程号 the process ID,退出状态,运行时间),这些信息直到父进程通过 wait()/waitpid() 来取时才释放
基于STM32的智能火灾报警系统设计:多传感器融合与远程控制实现
本文详细介绍基于STM32单片机的智能火灾报警系统设计,采用多传感器融合技术(烟雾、温度、火焰检测)实现高精度火灾识别。系统集成远程控制与手机APP监控,通过加权决策算法降低误报率,提供多级响应策略,确保火灾预警的准确性与可靠性。
孤儿进程和僵尸进程
对于僵尸进程,父进程可以使用wait()或waitpid()等函数等待子进程结束,并处理子进程的退出状态信息,从而避免僵尸进程的产生。此时子进程成为孤儿进程,因为它的父进程已经结束,但它还在运行。在这种情况下,子进程被称为僵尸进程,它虽然不再运行,但仍然占用系统的进程表项和一些系统资源,如果大量的僵尸进程积累,就会导致系统资源耗尽,导致系统崩溃。这时候子进程会被称为孤儿进程,它的父进程ID变成1号进程(init),这个进程会接管孤儿进程的后续处理,防止孤儿进程一直运行占用资源。
从零到一:手把手教你用C#开发AGV调度系统(附避坑指南)
本文详细介绍了如何使用C#开发高效的AGV调度系统,涵盖从环境搭建到核心算法实现的完整流程。重点解析了动态路径规划、多机协同等关键技术,并提供了实用的避坑指南和性能优化建议,帮助开发者快速构建工业级车辆控制调度系统。
别再手动填序号了!用Python脚本在Arcgis属性表里实现分组自动编号(附完整代码)
本文详细介绍了如何利用Python脚本在Arcgis属性表中实现分组自动编号,告别低效的手工操作。通过核心代码解析和实战教程,帮助GIS工程师快速掌握自动化编号技术,提升工作效率并降低错误率。特别适合城市规划、国土调查等需要处理大量分组数据的场景。
【操作系统】僵尸进程与孤儿进程总结
【操作系统】僵尸进程与孤儿进程总结
操作系统知识点汇总(王道)
操作系统不论是就业还是升学都是核心的一门课程,对于大部分工科更是必修课程。本文章是对《王道操作系统》所有知识点的总结笔记,以供大家学习以及在备考期间复习使用。让我们一起把知识往脑子里旋好吗!!!......
【Linux系统编程】僵尸进程与孤儿进程
僵尸进程与孤儿进程
【LLC快速上手系列】LLC轻载时:开关频率 + 死区时间 联合优化!
轻载优化,频率别飞天,死区要有耐心。两手一起抓,效率高到笑。😎。
5、模糊风险评估
本文介绍了基于模糊逻辑的风险评估方法,探讨了如何在不确定、不完整信息环境下进行高效的风险分析。文章涵盖了模糊集合与隶属度函数的基本概念、模糊推理系统的流程,并结合犯罪风险、金融风险和医疗诊断等实际案例,展示了模糊风险评估的应用价值和技术细节。此外,还介绍了模糊贝叶斯网络、模糊综合评价等进阶工具与方法,为多领域风险管理提供了理论支持和实践指导。
【Linux系统】僵尸进程和孤儿进程
本文详细讲解 何为僵尸进程和孤儿进程、僵尸进程的危害、杀死僵尸进程的 3 种方式
labview高低拼接的理解
计算机的一个字节由8位组成,无符号的8位整形表示的范围为0~255,范围太小了,所以用双字节,即16位整形表示更大范围的数字0 ~65535。2.labview中的高低拼接实质是高8位字节左移8位与低8位字节相加,结果是双字节整形。
【僵尸进程和孤儿进程】
僵尸进程和孤儿进程含义
Probability and Statistics - 4th edition
Probability and Statistics - 4th edition
WINCC7.3破解文件
WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!
孤儿进程和僵尸进程的区别
我们知道在unix/linux中,正常情况下,子进程是通过父进程创建的,子进程在创建新的进程。子进程的结束和父进程的运行是一个异步过程,即父进程永远无法预测子进程 到底什么时候结束。 当一个 进程完成它的工作终止之后,它的父进程需要调用wait()或者waitpid()系统调用取得
jdk-8u144-linux-x64.tar.gz.
该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包
python进程之僵尸进程和孤儿进程
概念 进程:在unix/linux中,正常情况下,子进程是通过父进程创建的,子进程再去创建新的进程。子进程和父进程运行在不同的内存池,是异步的,即父进程永远无法预测子进程什么时候结束。当一个进程完成它的工作之后,它的父进程需要调用wait()或waitpid()系统调用取得子进程的终止状态。 1. 僵尸进程 僵尸进程:(父进程没结束,子进程提前结束,父进程没有处理子进程的状态)(有害,应...
VC中sqlite的使用
在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示
僵尸进程和孤儿进程详解
僵尸进程和孤儿进程是Linux系统中两种常见的异常进程状态。僵尸进程是已终止但未被父进程回收的进程,仅占用PID资源,可通过重启父进程或修改代码解决;孤儿进程是父进程终止后仍在运行的进程,会被init/systemd自动收养并最终回收,基本无害。两者的核心区别在于:僵尸进程已终止但占用进程表条目,而孤儿进程仍在运行但失去父进程。理解这两种进程状态对系统故障排查至关重要。
【Linux】:僵尸进程和孤儿进程
Linux系统中关于僵尸进程和孤儿进程详细介绍!
僵尸进程和孤儿进程的危害
如果你也想学习:黑客&网络安全的SQL攻防。
孤儿进程、僵尸进程和守护进程
如果父进程先于子进程退出,则子进程成为孤儿进程,此时将自动被PID为1的进程收养, PID为1的进程就成为了这个进程的父进程。当一个孤儿进程退出以后,它的资源清理会交给它的父进程来处理。查看再使用 kill -9 <PID> # 强制终止进程 我这里是kill -9 28667。
8062



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



