
各プロセスグループはプロセスセッションに属する必要がありますか?つまり、プロセスグループはプロセスセッション内にのみ存在する概念ですか?
どのプロセスセッションにも属さないプロセスグループはありますか?プロセスグループにセッションIDがない可能性がありますか?
disown
組み込みコマンドを使用してbashシェルでプロセスグループを編集するときdisown
、プロセスグループはまだ存在しますか?
元のプロセスグループにあったプロセスがまだ同じグループIDを持っていますか?つまり、まだプロセスグループを形成していますか?
答え1
POSIXの定義会議したがって:
ジョブ制御目的に設定されたプロセスグループの集合。各プロセスグループはセッションのメンバーです。プロセスは、そのプロセスグループが属するセッションのメンバーと見なされます。新しく作成されたプロセスは、コンストラクタのセッションに参加します。プロセスはセッションメンバーシップを変更できます。セットID()。同じセッションに複数のプロセスグループがある可能性があります。
すべてのプロセスグループはセッションに属します。しかし、これらの概念は互いに依存しないため、プロセスグループが1つのグループであるとは言えません。コンセプトセッション内にのみ存在します。
バックグラウンドプロセスは作成時に独自のプロセスグループに割り当てられるため、disown
プロセスグループは変更されません。disown
Bashのみを実行するワークシート:
disown
[-ar
] [-h
] [作業仕様...]毎日削除できるオプションはありません作業仕様アクティブワークシートから。もし作業仕様存在せず、オプションも提供されない場合、
-a
現在-r
の操作が使用されます。このオプションが与えられると、-h
各作業仕様SIGHUP
テーブルからは削除されませんが、シェルはそれを受け取るように表示されますSIGHUP
。作業仕様これは、オプションなしですべての-a
ジョブを削除または表示することを意味します。-r
作業仕様パラメーターは、ジョブを実行するジョブに制限します。それ以外の場合、戻り値は 0 です。作業仕様有効なジョブが指定されていません。