Linux进程组,会话,作业解析

在这里插入图片描述

Linux进程组,会话,作业解析

进程组是什么

进程组是一个或多个进程组成的,进程组一般有一个组id,进程组的组id是该组第一个进程的id。
在这里插入图片描述
即使我们杀了第一个进程,该进程组的组id也是第一个进程的id。
在这里插入图片描述
只有进程组中所有进程退出,该进程组才会退出。

会话解析

会话:一个会话可能有一个或多个进程组组成,常见的会话如我们新打开的终端,其本质就是打开一个终端文件,同时运行bash进程。
一个会话都会有一个会话id及sid,sid一般都是该会话的第一个进程组的组id,比如打开一个新终端,我们打开的第一个进程组就是bash。
在这里插入图片描述

守护进程详解

守护进程:我们在当前会话中启动一个可执行程序,该可执行程序的执行与会话有关,我们将执行程序变为新的会话,由OS接管。
创建一个守护进程。
1).首先,fork一个子进程,同时将该子进程的父进程杀掉,让其变为孤儿进程。
2).其次,在子进程中(该进程的进程组组长不能设置为新会话),调用接口setsid。
3).最后,我们可以改变进程的当前文件,也可以将我们可以将该进程的stdin, stdout, stderr,都指向/dev/null设备。
在这里插入图片描述

同时,我们也可以直接调用系统调用daemon接口。
在这里插入图片描述

作业解析

为了解决某些问题,我们通常要启动一个或多个进程,这一个或多个进程被称为作业。
一个会话中,只允许执行一个前台作业和多个后台作业,只有前台作业才能从标准输入中得到信息。
我们可以用一些指令查看当前会话的后台作业

jobs [-l] [-p]
在这里插入图片描述
-p选项,可以查看该作业的pgid
一个作业后面的+,则代表该默认作业,还可能是-,则代表即将称为默认作业。
fg 作业号
将一个后台作业放到前台。
在这里插入图片描述
bg 作业号
将一个暂停(ctrl + z)的进程变为运行状态。
在这里插入图片描述

我们可以让一个进程默认在后台运行。

&
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值