
私が理解しているように、LinuxまたはUnixのシェルでプロセスが起動すると、そのプロセスをプロセスリーダーとして使用して新しいプロセスグループが作成され、そのPIDはそのプロセスでプロセスを作成するために使用される新しいPGIDと同じになります。
私が理解したところによると、プロセスリーダーが終了すると、新しいプロセスがリーダーになります。この新しいリーダーは、プロセスグループのPGIDと同じではないPIDを持ちます。それでは、グループ内のすべてのプロセスを見て、どのプロセスがリーダーであるかをどうやって知ることができますか?
答え1
以下を実行できます。
pgrep -g <PGID>
これにより、グループ内のすべてのPIDが返されます。最初はリーダーです。
リーダーだけが必要な場合は、次を実行できます。
pgrep -g <PGID> | head -1