Wie zeigt man eine Liste von Prozessen aus einer Gruppe an?

Wie zeigt man eine Liste von Prozessen aus einer Gruppe an?

Ich möchte einen einfachen Befehl, um alle Prozesse und ihre Informationen von einer bestimmten PGID aufzulisten.

Antwort1

Ich sehe keine Möglichkeit, proaktiv psdie Auswahl basierend auf pgrp festzulegen. Sie müssen also diese Spalte anfordern und dann danach filtern. So etwas wie:

ps axo pgrp,stat,euid,ruid,tty,tpgid,sess,ppid,pid,pcpu,comm | awk -v pgrp=3668 '$1 == pgrp'

ps -eo pgrp,pid,comm | sed -n -e 1p -e ' /3668/ p'

PGRP=3668; ps -eo pgrp,pid,comm | sed -n -e 1p -e " / $PGRP / p"

Antwort2

pgrep -ag PGID

Wenn PGIDist 0, bedeutet dies die eigene Prozessgruppe von pgrep, z. B.

$ cat | cat | cat | pgrep -ag0
7301 cat
7302 cat
7303 cat

(Beachten Sie, dass pgrepes sich niemals selbst in die Auflistung aufnimmt und pkillsich niemals selbst beendet)

Antwort3

ps -g $pgidFunktioniert bei Darwin wie gewünscht.

Unter Linux funktioniert dies nicht und Sie müssen eine andere Lösung verwenden. Sie können verwenden, ps --ppid $ppiddas alle untergeordneten Prozesse des angegebenen übergeordneten Prozesses auflistet.

verwandte Informationen