进程组概念:
(1)每个进程除了有一个进程ID之外,还属于一个进程组。
(2)进程组是一个或多个进程的集合。
(3)每个进程组有一个唯一的进程组ID,它是一个正整数,并存放在pid_t数据类型中。使用getpgrp返回进程组ID。
(4)每个进程组都有个组长ID。其进程组ID等于其进程ID。
(5)组长进程可以创建一个进程组,创建该组的进程,然后终止。
(6)从进程组创建开始到其中最后一个进程离开为止的时间区间内称为进程组的生存周期。进程组的最后一个进程可以终止,或者转移到另一个进程组。
(7)进程可以通过调用setpgid将pid进程的进程组ID设置为pgid。
会话概念:
(1)会话是一个或多个进程的集合。
通常是用管道线将几个进程编为一组的
proc1|proc2& proc3|proc4|proc5
(2)调用setsid 建立一个会话,如果调用此函数的进程不是一个进程组的组长,则就会创建一个新会话
<1>该进程成为会话首进程 <2>该进程成为新进程组的组长 <3>该进程没有控制终端,如果在调用