Linux进程组和会话
Linux的进程相互之间有一定的关系。比如说, 每个进程都有父进程,而所有的进程以init进程为根,形成一个树状结构。我们在这里讲解 进程组 和 会话 ,以便以更加丰富的方式了管理进程。 进程组 (process group) 每个进程都会属于一个进程组(process group),每个进程组中可以包含多个进程。进程组会有一个进程组领导进程 (process group leader),领导进程的PID成为进程组的ID (process group ID, PGID),以识别进程组。 $ps -o pid,pgid,ppid,comm | cat PID PGID PPID COMMAND 17763 17763 17751 bash 18534 18534 17763 ps 18535 18534 17763 cat PID为进程自身的ID,PGID为进程所在的进程组的ID, PPID为进程的父进程ID。从上面的结果,我们可以推测出如下关系(bash的PGID标错了): 图中箭头表示父进程通过fork和exec机制产生子进程。ps和cat都是bash的子进程。进程组的领导进程的PID成为进程组ID。领导进程可以先终结。此时进程组依然存在,并持有相同的PGID,直到进程组中最后一个进程终结。 我们将一些进程归为进程组的一个重要原因是我们可以将信号发送给一个进程组