1
コマンド:レベル2でサブシェルを強制する方法をpgidにするには?サブシェルのサブシェルとサブシェルの印刷物のPID以下
$ ((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
2番目の列の最後の行に固有の番号を表示する同様のコマンドを作成する簡単な方法はありますか?
が、なぜ最初のサブシェルPGIDと第二サブシェルを所有している - んでありませんか? (そして、fistサブシェルPGIDに属します)。言い換えれば、最初のシェルからもう一度切り離したいPGID – noonex
あなたのサブシェルはネストされています。外側のPPIDはbashコンソール自体であり、そのPGIDは分離されて以来独自のPGIDです。私はまだ内側のサブシェルが独自のPGIDを持たない理由を疑問に思っています。 –
私はあなたの質問に答えなかったことを知っています:p –