linux下的进程组会话作业的概念

进程组,会话,作业的概念

  • 进程组是一个或者多个进程的集合;

  • 会话是一个或者多个进程组的集合(一个会话中有一个前台进程组和零到多个后台进程组);

  • 作业就是进程组,所以一个终端可以有多个作业
    这里写图片描述
    这里写图片描述
    为什么要有进程组?在一个进程组与在不同的进程组有什么关系?

  • 进程组的目的是为了作业控制,进程组的主要特征就是信号可以发送给组内的所有进程,同一个进程组的进程可以接受来自同一个终端的各种信号.

tips

  • linux下执行 top|grep abc是把这两个进程放到同一个前台进程组执行的(在此期间shell处于后台进程组)

  • linux下执行 top|grep abc&是把这两个进程放到同一个后台进程组执行的(所以它们执行期间shell还可以正常执行)

一些函数

setsid新建一个会话,如果该进程为进程组的组长进程则出错,如果不是组长那么就会新建会话.
成功的话执行下面的流程:

1.该进程成为新会话的会话首进程(会话首进程是创建该会话的进程),此时他是会话中的唯一进程

2.该进程成为一个新进程组的组长,新进程组ID是该进程的ID

3.该进程没有控制终端,如果调用setsid之前该进程有一个控制终端,那么控制终端也会切断

参考资料

1 UNIX环境高级编程(中文版第三版)
2 Linux系统编程中文版

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值