Linux进程间关系之进程组,作业,会话与作业控制。

这篇博客深入探讨了Linux中进程组、作业、会话的概念及其相互关系。讲解了如何通过fg、bg、jobs、ps等指令进行作业控制,强调了进程组与作业的区别,以及会话的组成和控制终端的角色。作业控制允许在终端上同时运行多个作业,信号控制则用于与前台作业交互。此外,还讨论了输入输出的管理,如后台作业如何处理试图读取终端的情况。
摘要由CSDN通过智能技术生成

本片博客用到的相关指令fg,bg,jobs,ps等可自行查阅。

进程组

每个进程除了有一个进程ID之外还有一个进程组ID。每个进程都属于一个进程组。进程组是一个或多个进程的集合。每个进程都有一个唯一的进程组ID。每个进程都有一个组长进程。
组长进程标志:其所属进程组ID等于其进程ID。
进程组就是进程的集合,这些进程并不是孤立的,他们彼此之间或者存在父子、兄弟关系,或者在功能上有相近的联系。每个进程都有父进程,而所有的进程以init进程为根,形成一个树状结构。
(init 1号进程)
组长进程可以创建一个进程组,创建该组中的进程,然后终止。只要该进程中的任意一个进程存在,则该进程组就存在,与其组长进程是否存在无关。(战斗到最后一个人)

作业

shell分前后台控制的不是进程而是作业(JOB)或者进程组,一个前台作业可以由多个进程组成,一个后台作业也可以由多个进程组成,一个shell可以同时运行一个前台作业和多个后台作业,这称为作业控制。

但我们想把一个作业放到后台运行时,可以在运行指令的后面加上 “&”,并且系统会返回当前作业的作业号,以及进程的进程ID。
eg:

./a.out &

一个作业可以是一个进程,也可以是几个进程的集合。例如:

  • 单个在后台执行一个a.out:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值