同じプロセスグループIDで複数のプロセスを実行するには?

同じプロセスグループIDで複数のプロセスを実行するには?

私はkillpgシステムコールを使用する方法を学んでいます。したがって、実験のために同じpgidで2つの新しいプロセスを開始し、killpgを使用してそのプロセスを終了しようとしています。

私はsetidについて読んだので、次のことを試しました。

setsid gedit & firefox &

しかし、geditとfirefoxという2つのプロセスは2つの異なるpgidで終わります。

ベストアンサー1

可能であれば、Firefoxとその中にあるいくつかのタブを開きます。次に、次のようにします。

ps o pid,ppid,pgid,sid,comm

次の内容が表示されます。

  PID  PPID  PGID   SID COMMAND
 5121 25145  2628  2628 Web Content
 5881 25145  2628  2628 Web Content
25145     1  2628  2628 firefox-esr

または、サブシェルを使用してバックグラウンドプロセスを作成します。

$ (sleep 100& gedit&)
$ ps o pid,ppid,pgid,sid,comm
  PID  PPID  PGID   SID COMMAND
 6365  2618  6364 27631 sleep
 6366  2618  6364 27631 gedit

サブシェルが必要な理由と進行状況の良い説明は次のとおりです。私の子プロセスのPGIDが親プロセスのPIDではないのはなぜですか?

また見なさい:

man credentials

おすすめ記事