1. 在前台执行命令:
$ ps -o pid,ppid,pgid,sid,tpgid,comm | cat
PID PPID PGID SID TPGID COMMAND
21818 21811 21818 21818 21827 bash
21827 21818 21827 21818 21827 ps
21828 21818 21827 21818 21827 cat
从TGPID可以看出,bash不是终端进程,反而ps(PID = 21827)是终端进程。
TGPID: controlling tty process group ID, 通过 `man ps' 命令可以查到:
man ps
2. 在后台执行命令:
$ ps -o pid,ppid,pgid,sid,tpgid,comm | cat &
[1] 21851
$ PID PPID PGID SID TPGID COMMAND
21818 21811 21818 21818 21818 bash
21850 21818 21850 21818 21818 ps
21851 21818 21850 21818 21818 cat
可以看到,bash这时候是前台进程,拥有终端。
会话ID(准确地讲是“会话首进程的进程(组)ID”)一直不会发生变化,等于bash的进程ID.