进程组:
进程组是一个或是多个进程的集合:
同一个进程组的各个进程 接受来自于同一个终端的信号
每一个进程组,有一个唯一的 pgid (进程组id)
pid_t getpgid(pid_t pid);//获取某个进程所在进程组的pgid
进程组组长相关:
-
每个进程组,都有一个组长. 组长のpid=pgid;
-
进程组组长 可以 创建一个新的进程组,创建改组中的进程,终止改组中的进程
进程组的生命周期
-
生命周期:只要该进程组中还有进程存在,这个进程组就还存在:
---->进程组的生死存亡,和组长无关: 人在塔在,人亡塔亡
-
进程组消亡的方式:
①最后一个进程终止
②最后一个进程离开本进程
创建进程组
int setpgid(pid_t pid,pid_t pgid);
//将pid进程的进程组设置为pgid
参数问题:
1.如果pid =pgid; 则由pid指定的进程,变成他所在进程组的组长 ---->组长指定
2.如果pid=0 ,则使用调用者的pid, ----.调用该函数的进程加入某个进程组
3.如果pgid=0,则由pid指定的进程id用作进程组id;----->自定义组id
死记:一个进程只能为他自己或他的子进程设置进程组id,在他的子进程调用exec之后,他就不能在更改子进程的进程组id
==为什么呢?&#