分类:
2008-11-28 13:57:44
9.9 shell execution of programs
(一)在bash里执行下面命令: (注意,tpgid是列出的当前的使用controlling terminal的foreground process group的gid)
ps -o pid,ppid,pgrp,session,tpgid,comm | cat1
结果:
PID PPID
PGRP SESS TPGID COMMAND
2837 2818
2837 2837 5799 bash
5799 2837
5799 2837 5799 ps
5800 2837
5799 2837 5799 cat1
一共有2个process group, 一个里面是bash,另一个里面包含ps和cat1,其中,ps和cat1都是bash的孩子,并且ps是其所在的process group的leader,而且这个process group是foreground process group。
(二)
ps -o pid,ppid,pgrp,session,tpgid,comm | cat1 &
the results are similar, but now ps and cat1 are placed in the same
background process group:
PID PPID
PGRP SESS TPGID COMMAND
2837 2818
2837 2837 2837 bash
5801 2837
5801 2837 2837 ps
5802 2837
5801 2837 2837 cat1
此时,bash的process group成了foreground process group。