私が知る限り、シェルとその子プロセスは同じ(制御)端末を使用して同じセッションにあります。同じ端末が接続されているので、インタラクティブなプロセスであることを読みました。今のところ、実際の対話がユーザーとシェルの間にあるので、正しくないと感じても大丈夫です。
GUIプログラム(ブラウザ、テキストエディタなど)、ウィンドウマネージャ、デスクトップ環境はどうですか? X11のサブプロセスですか?
修正:シェルの各コマンドパイプには異なるPGIDがあります。したがって、シェルの子プロセスには、シェルの子プロセスと同じPGIDはありません。
ベストアンサー1
伝統的なUnixの概念会議テキスト端末のログインセッションに適しています。
X11セッション(例:会議特定のUnixの意味ではなく、一般的な意味では、すべてのプロセスは通常、セッションリーダープロセスの子孫です。これは、セッションマネージャー(存在する場合)、ウィンドウマネージャー、またはランチャー(グラフィックシェル)(存在する場合)です。 X11セッションを開始および終了するプロセスがあります。その役割はデスクトップ環境によって異なります。
pstree
(基本インストールの一部ではない可能性があります)またはps axf
(Linuxのみ)を使用してプロセスツリーを観察できます。 X サーバーは他のプログラムと同じツリーブランチに属しません。その役割は入力と出力を調整するだけで、プログラムの起動にはまったく参加しません。通常、aまたはxinit
aが表示されます。ディスプレイマネージャ2つのサブエントリがあり、1つはXサーバー、もう1つはXセッションリーダーです。
一部のGUIプログラムは、親プロセスが終了した場合(たとえば、ラッパースクリプトによってバックグラウンドで開始された後に終了したため)、プロセスツリーに接続されない場合があります。
実際の対話はユーザーとシェルの間で行われます。
実際にシェルと対話する場合にのみ可能です。端末で実行されている他のプログラムと対話するときに関連するシェルはありません。入力と出力はプログラムと端末間で直接移動し、シェルはプログラムが終了または中断されるまでバックグラウンドで待機します。