fork()时,子进程继承了父进程的进程组ID,所以父子进程默认属于同一个进程组,又因为同一个进程组的进程可以接受来自同一终端的各种信号所以当希望用键盘发送信号(如按下Ctrl+C)时,父子进程对接收到的父子进程有不同的处理方式时,那么子进程就不能继承父进程的处理该信号的函数,要在子进程的代码中单独注册处理该信号的函数。

fork()创建子进程就是父进程的一份拷贝,大部分属性都继承过来,但仍有部分属性不同。

  1. 子进程继承父进程属性。

》真实用户ID和组ID,有效用户ID和组ID。

进程组ID

》session ID

》所有打开文件及文件的偏移量。

》控制终端

》设置用户ID和设置组ID标记位

》根目录和当前工作目录

》文件默认创建的权限掩码

》可访问的内存区段

》环境变量及其他资源分配

  1. 子进程不同父进程属性。

》进程ID

》运行时间记录,timer等

》父进程对文件的锁定
来源:父子进程属性异同
·········································································································
来源:进程】进程组

  1. 进程组

(1)进程组,也称之为作业,BSD与1980年前后向UNIX中增加的一个新特性,代表一个或多个进程的集合。每个进程都属于一个进程组,在waitpid函数和kill函数的参数中都曾经使用到,操作系统设计的进程组的概念,是为了简化对多个进程的管理。

当父进程创建子进程的时候,默认子进程与父进程属于同一个进程组,进程组是一个或多个进程的集合,通常它们与一组作业相关联,默认子进程与父进程属于同一个进程组。进程组ID等于进程组第一个进程ID(组长进程)。所以,组长进程标识:其进程组ID等于其进程ID.

组长进程可以创建一个进程组,创建该进程组的进程,然后终止,只要进程组中有一个进程存在,进程组就存在,与组长进程是否终止无关。

(2)kill发送给进程组

使用 kill -n -pgid 可以将信号 n 发送到进程组 pgid 中的所有进程。例如命令 kill -9 -4115 表示杀死进程组 4115 中的所有进程。
————————————————
版权声明:本文为CSDN博主「月雲之霄」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/isunbin/article/details/88855114

默认子进程与父进程属于同一个进程组,所以注意对接受到的信号的处理方式相关推荐

  1. 【Linux进程】Linux进程

    Linux进程 Linux进程介绍 程序和进程 进程并发 CPU和MMU PCB 环境变量 Linux进程控制 创建子进程(fork函数) 子进程切换执行的代码(exec函数族) 回收子进程(wait ...

  2. fork()子进程与父进程之间的文件描述符问题

    在C程序中,文件由文件指针或者文件描述符表示.ISO C的标准I/0库函数(fopen, fclose, fread, fwrite, fscanf, fprintf等)使用文件指针,UNIX的I/O ...

  3. 进程 — 子进程与父进程的关系

    程序一: #include <sys/types.h> #include <unistd.h> #include <stdio.h>//子进程与父进程间的关系int ...

  4. Linux系统编程--3(exec 函数族,僵尸进程和孤儿进程,wait和wait_pid回收子进程)

    exec 函数族 fork 创建子进程后执行的是和父进程相同的程序(但有可能执行不同的代码分支) ,子进程往往要调用一种 exec 函数以执行另一个程序.当进程调用一种 exec 函数时,该进程的用户 ...

  5. linux ps 进程组,linux进程管理(2)---进程的组织结构

    一.目的 linux为了不同的进程管理目的,使用了不同的方法组织进程之间的关系,为了体现父子关系,使用了"树形"图:为了对同一信号量统一处理,使用了进程组:为了快速查找某个进程,使 ...

  6. python主进程退出时子进程也退出_主进程被杀死时,如何保证子进程同时退出,而不变为孤儿进程(三)...

    之前两篇文章讨论了进程意外退出时,如何杀死子进程,这节我们研究下在使用进程池multiprocessing.Pool时,如何保证主进程意外退出,进程池中的worker进程同时退出,不产生孤儿进程.如果 ...

  7. apply_async进程不执行_[粉丝问答6]子进程进程的父进程关系

    一.粉丝提问 fork出的进程的父进程是从哪来的? 粉丝提问,一口君必须满足 二.解答 这个问题看上去很简单,但是要想把进程的父进程相关的所有知识点搞清楚,还是有点难度的,下面我们稍微拓展下,分几点来 ...

  8. linux孤儿进程组深入理解,LInux下僵尸进程与孤儿进程是如何产生的?

    1:如何产生: 僵尸进程,先于父进程终止,但是父进程没有对其进行善后处理(获取终止子进程有关信息,释放它仍占有的资源).消灭僵尸进程的唯一方法是终止其父进程. 孤儿进程:该进程的父进程先于自身终止.其 ...

  9. Linux进程3:父进程等待(wait,waitpid)子进程退出并收集子进程退出状态,僵尸进程

    父进程等待(wait,waitpid)子进程退出并收集子进程退出状态 1.父进程为什么要等待子进程退出? 创建子进程目的:------干活 我们要知道干活结束没. 子进程退出状态不被收集,变成僵尸进程 ...

最新文章

  1. facade-门面模式
  2. ​Rust最受喜爱却少有人用,Python仅排第六,2021全球开发者调查报告出炉
  3. 网络推广外包——网络推广外包公司为每个线下商城实现“线上梦”!
  4. DDD理论学习系列(10)-- 聚合
  5. 邮件:事务失败。 服务器响应为:DT:SPM 163 smtp
  6. 汇编解析(1)-内存寻址之实模型平面模式(real mode flat mode)(1)
  7. 说说如何使用 Ant 把文件推送到 Linux
  8. 【转】静态类与非静态类
  9. 【计蒜客 - 2019南昌邀请赛网络赛 - M】Subsequence(字典树,dp预处理)
  10. 客户端调用 WCF 的几种方式
  11. web.xml文件的作用
  12. 交钱赎“人”!B站500万粉UP主被黑客勒索,腾讯都表示无解
  13. 浅谈TCP优化(转)
  14. ubuntu10.04以及10.10安装配置tftp服务
  15. tcp发送方的发送速度由接收方给出的接收窗口决定_TCP协议的详解
  16. 疯狂java讲义 如何_[java学习]《疯狂java讲义》
  17. Grids for mac(强大的Instagram客户端工具)
  18. iphone和android照片传输,iPhone与安卓跨平台如何传照片图文教程
  19. c 语言温度换算的程序,华氏温度换算公式及C语言转换程序代码
  20. 三亚游—温暖的寒冬、蔚蓝的海和安九拉

热门文章

  1. VS2015--win32project配置的一些想法之在 Visual Studio 2015 中进行调试的同一时候分析性能...
  2. UI第九节——UIProgressView
  3. 个人博客多说评论系统的使用
  4. MySQL 在 LIMIT 条件后注入
  5. cmd.exe命令行方式执行matlab代码 【转】
  6. C#后台导入css和设置前台关键字和描述
  7. GUI(三)一个菜单的程序
  8. TP5 实现多字段的关键词模糊查询
  9. 应力循环次数60ant_恒温恒湿箱循环试验失效分析
  10. python绘图课设_python课程设计笔记(三)turtle绘图库(海龟库)