Możesz zainstalować pstreepolecenie za pomocą Homebrew (mój osobisty ulubiony), MacPorts lub Fink, a uzyskasz widok drzewa procesów w wierszu poleceń na komputerze Mac.
#!/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.
Uznałem tę odpowiedź za przydatną w sytuacji, gdy nie mogłem jeszcze zainstalować Brew (problemy z debugowaniem Packera + vmware).
Amos Shapira
1
To świetna odpowiedź i świetny punkt wyjścia, ale byłoby bardziej użyteczne, gdyby istniał sposób na obcinanie linii, ponieważ stają się one naprawdę, bardzo długie w OSX i zawijają się w oknie terminala. Jakieś pomysły na ten temat?
Rolf
3
@Rolf treeps | cut -c 1-$COLUMNSodetnie długie linie na szerokości bieżącego okna terminala. (lub zwykła liczba 100zamiast $COLUMNSzmiennej)
DouglasDD
podobnie jak sytuacja Amosa Shapiry, to, czego szukałem, to brewsama - zajmuje dużo czasu na aktualizację i nie mówi mi nic w terminalu, w którym działa; więc dla mnie ta odpowiedź jest klejnotem!
landru27
9
Dostosowałem skrypt perla Grega Ercolano do skryptu python.
Inną opcją jest htopopcja wyświetlania w formacie drzewa. Możesz nacisnąć F5interaktywnie lub użyć go htop -tpodczas uruchamiania. Żeby zainstalować:brew install htop
Wklej to w swoim terminalu, aby zainstalować Homebrew, który pozwoli ci zainstalować pstree.
Następnie zainstaluj pstree za pomocą tego polecenia
brew install pstree
Teraz możesz użyć pstreepolecenia w swoim terminalu
W przypadku niepowodzenia polecenia instalacji, tj. Sam Xcode nie jest wystarczający w wersji systemu operacyjnego, zainstaluj Narzędzia deweloperskie wiersza poleceń, uruchamiając to polecenie przed zainstalowaniem pstree.
Zakładałem, że mogą wystąpić pewne zmiany w bieżącej wersji systemu MacOS lub Xcode, na przykład musiałem zainstalować Narzędzia deweloperskie z wiersza poleceń przed zainstalowaniem pstree.
Ethan Stykes,
Bez żadnych zmian, zawsze potrzebne były narzędzia wiersza polecenia Xcode, jak wspomniano we wszystkich instrukcjach instalacji dla 3 menedżerów pakietów
user151019,
Och, mam nadzieję, że moja odpowiedź będzie dla kogoś przydatna.
treeps | cut -c 1-$COLUMNS
odetnie długie linie na szerokości bieżącego okna terminala. (lub zwykła liczba100
zamiast$COLUMNS
zmiennej)brew
sama - zajmuje dużo czasu na aktualizację i nie mówi mi nic w terminalu, w którym działa; więc dla mnie ta odpowiedź jest klejnotem!Dostosowałem skrypt perla Grega Ercolano do skryptu python.
Przykładowe dane wyjściowe:
źródło
Inną opcją jest
htop
opcja wyświetlania w formacie drzewa. Możesz nacisnąćF5
interaktywnie lub użyć gohtop -t
podczas uruchamiania. Żeby zainstalować:brew install htop
Źródło: ServerFault
źródło
Wklej to w swoim terminalu, aby zainstalować Homebrew, który pozwoli ci zainstalować pstree.
Następnie zainstaluj pstree za pomocą tego polecenia
Teraz możesz użyć
pstree
polecenia w swoim terminaluW przypadku niepowodzenia polecenia instalacji, tj. Sam Xcode nie jest wystarczający w wersji systemu operacyjnego, zainstaluj Narzędzia deweloperskie wiersza poleceń, uruchamiając to polecenie przed zainstalowaniem pstree.
źródło