Wie kann nur ein Prozess und seine untergeordneten Prozesse auf htop angezeigt werden?

10

Ich möchte nur einen Prozess und seine untergeordneten Prozesse überwachen htop. Durch Filtern nach dem Namen des übergeordneten Prozesses wird nur der übergeordnete Prozess aufgelistet, nicht seine untergeordneten. Wie zeige ich auch die Prozesse der Kinder?

winko
quelle

Antworten:

7

Unter Linux können Sie Folgendes tun:

htop -p `pstree -p $PID | perl -ne 'push @t, /\((\d+)\)/g; END { print join ",", @t }'`

Wo $PIDist der Root-Prozess? Dies funktioniert wie folgt:

  1. Die Liste der gewünschten Prozesse wird mit abgerufen pstree, wobei die -pOption verwendet wird, sie mit ihrer PID aufzulisten.
  2. Die Ausgabe wird an ein Perl-Skript weitergeleitet, das die PIDs mithilfe eines regulären Ausdrucks (hier \((\d+)\)) abruft und sie durch Kommas getrennt ausgibt.
  3. Diese Liste wird als Argument von bereitgestellt htop -p.

Für andere Betriebssysteme wie Mac OS müssen Sie möglicherweise den regulären Ausdruck anpassen, mit dem die PIDs abgerufen werden.

Hinweis: Es ist leider nicht möglich, die Liste mit neuen untergeordneten Elementen zu aktualisieren, die später erscheinen, da nach htopder Ausführung nichts anderes mehr getan werden kann. Dies ist eine Einschränkung von htop(aktuelle Version: 2.0.2).

vinc17
quelle
$PIDkann der Name des Prozesses sein oder muss es die ID sein?
Becko
@becko $PIDmuss die PID sein, aber Sie können die ID aus dem Namen des Prozesses mit erhalten pgrep.
vinc17
5
Dies wird jedoch nicht aktualisiert, wenn neue Kinder auftauchen.
Ich
@black_puppydog mich auch!
Becko
Auf macOS mit pstreevon homebrew:htop -p `pstree -p $PID | perl -ne 'push @t, /--- (\d+) /g; END { print join ",", @t }'`
jpsim
0
htop -p $(ps -ef | awk -v proc=15305 '$3 == proc { cnt++;if (cnt == 1) { printf "%s",$2 } else { printf ",%s",$2 } }')

Verwenden Sie awk, um eine durch Kommas getrennte Liste von Prozess-IDs aus der Ausgabe von ps -ef zu erstellen, indem Sie die übergeordnete Prozess-ID als proc übergeben und diese dann an htop -p weitergeben.

Raman Sailopal
quelle