1
命令下面子外壳的打印PID和子外壳子外壳的:如何强制级别2的子shell在自己的pgid?
$ ((echo $BASHPID)& echo $BASHPID)& sleep 1
[1] 9885
9885
9887
[1]+ Done ((echo $BASHPID) & echo $BASHPID)
查阅下面的命令是更复杂,但它表明第二子外壳是在第一子外壳的“进程组”:
$ ((echo $$ $BASH_SUBSHELL $BASHPID ; export BBB=$BASHPID; ps -e -o pid,pgid,ppid,comm | grep -E "$$|$BBB|PGID" | grep -E "bash|PGID")& echo $$ $BASH_SUBSHELL $BASHPID; sleep 1)& sleep 1
[3] 9973
2787 1 9973
2787 2 9975
PID PGID PPID COMMAND
2787 2787 2769 bash
9973 9973 2787 bash
9975 9973 9973 bash
有没有简单的方法来创建类似的命令,将显示第二列最后一行的唯一编号?
但首先,为什么子shell都有自己的PGID和第二子shell - 不? (并且属于拳头子外壳PGID)。换句话说,我想再次脱离第一个外壳PGID – noonex
你的子壳是嵌套的,外部的PPID是bash控制台本身,它的PGID是它自己分离后的一个。我仍然想知道为什么inner subshell没有自己的PGID。 –
只是意识到我没有回答你的问题:p –