Antworten:
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:
pstree, wobei die -pOption verwendet wird, sie mit ihrer PID aufzulisten.\((\d+)\)) abruft und sie durch Kommas getrennt ausgibt.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).
$PIDmuss die PID sein, aber Sie können die ID aus dem Namen des Prozesses mit erhalten pgrep.
pstreevon homebrew:htop -p `pstree -p $PID | perl -ne 'push @t, /--- (\d+) /g; END { print join ",", @t }'`
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.
$PIDkann der Name des Prozesses sein oder muss es die ID sein?