
-gオプションを使用してすべてのプロセスを一覧表示すると、次の結果が表示されます。
ps -g -o pid,pgid,ppid
PID PGID PPID
112140 112140 112139
127467 127467 127466
130547 130547 112140
130551 130547 130547
130557 130557 127467
...
ps -g 130547
130547と130551を予想しましたが、何も表示されません。 「ps -s」と同じです。なぜ?同じグループ(ツリー)に属するプロセスを表示する方法はありますか?
答え1
Linuxでは、ps -g
次の方法でプロセスを選択してください。グループまたは経由会議しかし、そうではありません。プロセスグループ。パラメータが数値のみで構成されている場合はセッションIDとして処理し、それ以外の場合はグループ名として処理します。
ps -g 130547
セッション内のIDが130547のすべてのプロセスを一覧表示します。おそらく、プロセス130547はセッションリーダーではないので、セッションID 130547を持つプロセスはありません。
Linux psにはプロセスグループごとにフィルタリングするオプションはありません。特定のセッション内のすべてのプロセスまたはすべてのプロセスを一覧表示し、フィールドごとにフィルタリングできますpgid
。
ps -g $(ps -p 130547 -o sid=) -o pid,ppid,pgid
ps -e -o pid,ppid,pgid | awk 'NR == 1 || $3 == 130547'