Sie können den pstreeBefehl mit Homebrew (meinem persönlichen Favoriten), MacPorts oder Fink installieren und erhalten eine Befehlszeilenstrukturansicht der Prozesse auf Ihrem Mac.
Wenn Homebrew installiert ist, führen Sie einfach Folgendes aus:
#!/usr/bin/perl# treeps -- show ps(1) as process hierarchy -- v1.0 [email protected] 07/08/14
my %p;# Global array of pid info
sub PrintLineage($$){# Print proc lineage
my ($pid, $indent)=@_;
printf("%s |_ %-8d %s\n", $indent, $pid, $p{$pid}{cmd});# print
foreach my $kpid (sort {$a<=>$b}@{ $p{$pid}{kids}}){# loop thru kidsPrintLineage($kpid," $indent");# Recurse into kids}}# MAIN
open(FD,"ps axo ppid,pid,command|");while(<FD>){# Read lines of output
my ($ppid,$pid,$cmd)=( $_ =~ m/(\S+)\s+(\S+)\s(.*)/);# parse ps(1) lines
$p{$pid}{cmd}= $cmd;# $p{$pid}{kids} = (); <- this line is not needed and can cause incorrect output
push(@{ $p{$ppid}{kids}}, $pid);# Add our pid to parent's kid}PrintLineage(($ARGV[0])? $ARGV[0]:1,"");# recurse to print lineage starting with specified PID or PID 1.
Ich fand diese Antwort in einer Situation nützlich, in der ich Brew noch nicht installieren konnte (Debuggen von Packer + VMware-Problemen).
Amos Shapira
1
Dies ist eine großartige Antwort und auch ein guter Ausgangspunkt, aber es wäre nützlicher, wenn es eine Möglichkeit gäbe, Zeilen abzuschneiden, da sie in OSX sehr, sehr lang werden und sich im Terminalfenster verteilen. Irgendwelche Ideen dazu?
Rolf
3
@Rolf treeps | cut -c 1-$COLUMNSschneidet die langen Linien in der Breite Ihres aktuellen Terminalfensters ab. (oder eine einfache Zahl wie 100anstelle der $COLUMNSVariablen)
DouglasDD
Ähnlich wie bei Amos Shapira ist es das, wonach ich gesucht habe brew- es dauert lange, bis ich ein Update durchführe, und im Terminal, in dem es ausgeführt wird, wird nichts angezeigt. Für mich ist diese Antwort ein Juwel!
Landru27
9
Ich habe Greg Ercolanos Perl-Skript an das Python-Skript angepasst.
Eine andere Option ist htop, die eine Option zum Anzeigen im Baumformat hat. Sie können entweder F5interaktiv drücken oder htop -tbeim Starten verwenden. Installieren:brew install htop
Fügen Sie dies in Ihr Terminal ein, um Homebrew zu installieren, mit dem Sie pstree installieren können.
Dann installiere pstree mit diesem Befehl
brew install pstree
Jetzt können Sie den pstreeBefehl in Ihrem Terminal verwenden
Falls der Installationsbefehl fehlschlägt, dh Xcode allein in der Version Ihres Betriebssystems nicht ausreicht, installieren Sie die Command Line Developer Tools, indem Sie diesen Befehl ausführen, bevor Sie pstree installieren.
Ich nahm an, dass es einige Änderungen in der aktuellen Version von MacOS oder Xcode geben könnte, zum Beispiel musste ich vor der Installation von pstree die Command Line Developer Tools installieren.
Ethan Stykes
Nein, keine Änderung Sie brauchten immer Xcode-Befehlszeilen-Tools, wie in allen Installationsanweisungen für die 3 Paket-Manager
user151019
Oh !, hoffe, meine Antwort ist irgendwie nützlich für jemanden.
treeps | cut -c 1-$COLUMNS
schneidet die langen Linien in der Breite Ihres aktuellen Terminalfensters ab. (oder eine einfache Zahl wie100
anstelle der$COLUMNS
Variablen)brew
- es dauert lange, bis ich ein Update durchführe, und im Terminal, in dem es ausgeführt wird, wird nichts angezeigt. Für mich ist diese Antwort ein Juwel!Ich habe Greg Ercolanos Perl-Skript an das Python-Skript angepasst.
Beispielausgabe:
quelle
Eine andere Option ist
htop
, die eine Option zum Anzeigen im Baumformat hat. Sie können entwederF5
interaktiv drücken oderhtop -t
beim Starten verwenden. Installieren:brew install htop
Quelle: ServerFault
quelle
Fügen Sie dies in Ihr Terminal ein, um Homebrew zu installieren, mit dem Sie pstree installieren können.
Dann installiere pstree mit diesem Befehl
Jetzt können Sie den
pstree
Befehl in Ihrem Terminal verwendenFalls der Installationsbefehl fehlschlägt, dh Xcode allein in der Version Ihres Betriebssystems nicht ausreicht, installieren Sie die Command Line Developer Tools, indem Sie diesen Befehl ausführen, bevor Sie pstree installieren.
quelle