在Linux_父子进程与fork一文中,我们知道子进程是在父进程调用fork之后生成的。那么关于父子进程终止先后顺序又会有什么影响呢?

1、父进程在子进程之前终止

对于父进程已经终止的所有进程,它们的父进程都改变为init进程。我们称这些进程由init进程收养。其操作过程大致是:在一个进程终止时,内核逐个检查所有活动的进程,以判断它是否是是要终止进程的子进程,如果是,则该进程父进程ID就更改为1(init进程的ID)。

2、子进程在父进程之前终止

如果子进程在父进程之前终止时,内核为每个终止的子进程保存了一定量的信息,所以当终止进程的父进程调用wait或waitpid时,可以得到这些信息。内核可以释放终止进程所使用的所有存储区,关闭其所有打开文件,但至少会保存包括进程ID、该进程的终止状态以及该进程使用的CPU时间总量等信息。
一个已经终止、但是其父进程尚未对其进行善后处理(获取终止子进程的有关信息、释放它仍占用的资源)的进程被称为僵死进程。
ps命令将僵死进程的状态打印为Z。
那么一个由init进程收养的进程终止时会发生什么?它会不会变成一个僵死进程?
答案是否定的。init进程的实现决定无论何时只要有一个子进程终止,init就会调用一个wait函数取得其终止状态,无论是收养的进程还是init直接产生的子进程。

父子进程终止顺序与僵死进程相关推荐

  1. 【Linux】写实拷贝、父子进程间数据共享以及僵死进程

    目录 一.写实拷贝 二.父子进程间数据共享 三.僵死进程 我们都知道fork之后,会产生子进程,那么今天就来看一下,产生的子进程与父进程之间的数据共享问题.要说这个我们必须明确写实拷贝的概念 一.写实 ...

  2. linux 僵死日志,关于僵死进程

    首先介绍一下什么是僵死进程 int main() { int n = 0; char *s = NULL; pid_t pid = fork(); assert(pid != -1); if(pid ...

  3. 什么事孤儿进程和僵死进程?

    1.父进程先于子进程终止: 此种情况就是我们前面所用的孤儿进程.当父进程先退出时,系统会让init进程接管子进程 . 2.子进程先于父进程终止,而父进程又没有调用wait函数 此种情况子进程进入僵死状 ...

  4. 小议Linux中的僵死进程

    在读<unix环境高级编程>时,发现忽然对僵死进程的处理机制很感兴趣,经过查阅资料弄清楚了其中的原理,在这里做一个记录. 1.一个进程的离去 在一个进程调用  exit  函数,或者  r ...

  5. 一个文本回射C/S程序并讨论:fork、信号处理机制、僵死进程处理

    unix网络编程入门 前言 概述 fork 进程终止 信号捕捉 僵尸进程 定义 产生的原因 危害 处理方法 wait和waitpid函数 完整代码 最近在学习unix网络编程卷一学习,跟着书,敲了下代 ...

  6. 线程生命周期 什么时候会出现僵死进程

    线程生命周期 wait方法会释放锁,sleep不会释放锁. 在线程t中调用t2.join(),线程t进入阻塞状态直到线程t2执行完毕. Thread.yield()线程主动放弃cpu使用权. 什么时候 ...

  7. Linux->进程终止和等待

    目录 1. 进程终止场景 1.1 进程退出码 1.2 进程常见退出方式 2. 进程等待 2.1 进程等待的必要性 2.2 进程等待的方式 wait()方式 waitpid()方式 options参数 ...

  8. 【Linux】僵死进程的简单介绍

    一.僵死进程的定义 一个进程执行结束也就是代码部分执行结束,但是进程的PCB没有被系统释放. 进程结束后,在PCB中还要保存进程退出码,以备其父进程获取其退出码.而僵死进程恰恰就是父进程没有获取退出码 ...

  9. 63-Linux如何解决僵死进程

    一:回顾 1.每一个进程都有一个地址空间,叫做进程的虚拟地址空间,范围从0x0000 0000 ~ 0xffff fffff,上面(高地址)1G供内核使用,下面3G(低地址)供用户使用,代码段从0x0 ...

最新文章

  1. cc arm linux gcc,(80分请教):armcc 与 arm-elf-gcc的区别?
  2. 使用QT-QSerialport打不开串口的原因
  3. chapter 15 运算符详解
  4. Scala入门到精通——第十七节 类型参数(一)
  5. End to End Sequence Labeling via Bi-directional LSTM CNNs CRF
  6. 还是畅通工程(思想+代码)
  7. OpenCV调用YOLOv4进行目标检测
  8. NetApp集群模式Data ONTAP展露新颜
  9. 11-Mybatis 延迟加载策略
  10. 机器学习和AI的Python基础
  11. pytorch图像预处理
  12. 拼多多显示内部服务器错误是怎么回事,拼多多提现出现错误怎么办?拼多多提现常见问题...
  13. java收割者模式,烧饼丶收割者的动态
  14. 单例模式 饿汉式与懒汉式
  15. 软件项目管理第4版课后习题-期末复习题型分册版-练习版无答案
  16. Android整数相加程序
  17. 《信息化项目文档模板四——系统建设方案模板》
  18. Cookie--防劫持的处理
  19. 基于时间序列AR模型的PHM预测
  20. 小鱼鱼的 Python 学习笔记(第一周)

热门文章

  1. 10 本 Linux PDF 书籍免费分享
  2. 基于RFID技术下的RFID仓库管理解决方案,实现智能化仓库-新导智能
  3. 操作系统:操作系统内核是什么?
  4. win32com为word添加页码(示例)
  5. python只显示重复值_使用内置条件格式的OpenPyXL:重复值和唯一值
  6. week06_task_二分, 排序
  7. Floodlight模块分析:forwarding模块
  8. The JSON value could not be converted to System.Int64
  9. 【不忘初心】Win11_21H2_22000.100_X64_四合一[纯净精简版][2.9G](2021.8.5)
  10. Web前端大作业 体育主题足球网页制作 足球梅西HTML网页设计制作 dreamweaver学生网页源代码