各プロセスグループはプロセスセッションに属する必要がありますか?

各プロセスグループはプロセスセッションに属する必要がありますか?
  1. 各プロセスグループはプロセスセッションに属する必要がありますか?つまり、プロセスグループはプロセスセッション内にのみ存在する概念ですか?

    どのプロセスセッションにも属さないプロセスグループはありますか?プロセスグループにセッションIDがない可能性がありますか?

  2. disown組み込みコマンドを使用してbashシェルでプロセスグループを編集するときdisown

    • プロセスグループはまだ存在しますか?

    • 元のプロセスグループにあったプロセスがまだ同じグループIDを持っていますか?つまり、まだプロセスグループを形成していますか?

ベストアンサー1

POSIXの定義会議したがって:

ジョブ制御目的に設定されたプロセスグループの集合。各プロセスグループはセッションのメンバーです。プロセスは、そのプロセスグループが属するセッションのメンバーと見なされます。新しく作成されたプロセスは、コンストラクタのセッションに参加します。プロセスはセッションメンバーシップを変更できます。セットID()。同じセッションに複数のプロセスグループがある可能性があります。

すべてのプロセスグループはセッションに属します。しかし、これらの概念は互いに依存しないため、プロセスグループが1つのグループであるとは言えません。コンセプトセッション内にのみ存在します。

バックグラウンドプロセスは作成時に独自のプロセスグループに割り当てられるため、disownプロセスグループは変更されません。disownBashのみを実行するワークシート:

disown[ -ar] [ -h] [作業仕様...]

毎日削除できるオプションはありません作業仕様アクティブワークシートから。もし作業仕様存在せず、オプションも提供されない場合、-a現在-rの操作が使用されます。このオプションが与えられると、 -h作業仕様SIGHUPテーブルからは削除されませんが、シェルはそれを受け取るように表示されますSIGHUP作業仕様これは、オプションなしですべての -aジョブを削除または表示することを意味します。-r作業仕様パラメーターは、ジョブを実行するジョブに制限します。それ以外の場合、戻り値は 0 です。作業仕様有効なジョブが指定されていません。

おすすめ記事