Anda dapat menginstal pstreeperintah menggunakan Homebrew (favorit pribadi saya), MacPorts atau Fink dan Anda akan mendapatkan baris perintah, tampilan hierarki proses di Mac Anda.
Dengan Homebrew terinstal, jalankan saja:
brew install pstree
kemudian gunakan seperti pstreedari baris perintah.
#!/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.
Saya menemukan jawaban ini berguna dalam situasi di mana saya belum dapat menginstal Brew (debugging masalah Packer + vmware).
Amos Shapira
1
Ini adalah jawaban yang bagus dan titik awal yang baik juga, tetapi akan lebih berguna jika ada cara untuk memotong garis, karena mereka mendapatkan OSX yang sangat, sangat panjang dan membungkus di dalam jendela terminal. Ada ide tentang ini?
Rolf
3
@Rolf treeps | cut -c 1-$COLUMNSakan memotong garis panjang di lebar jendela terminal Anda saat ini. (atau nomor sederhana seperti 100bukan $COLUMNSvariabel)
DouglasDD
mirip dengan situasi Amos Shapira, apa yang saya cari ini brewsendiri - butuh waktu lama untuk memperbarui, dan tidak memberi tahu saya apa pun di terminal tempat ia beroperasi; jadi, bagi saya, jawaban ini adalah permata!
landru27
9
Saya mengadaptasi skrip perl Greg Ercolano ke skrip python.
Opsi lainnya adalah htop, yang memiliki opsi untuk ditampilkan dalam format hierarki. Anda dapat pers F5secara interaktif, atau gunakan htop -tsaat peluncuran itu. Untuk memasang:brew install htop
Rekatkan ini di terminal Anda untuk menginstal Homebrew yang memungkinkan Anda menginstal pstree.
Kemudian instal pstree menggunakan perintah ini
brew install pstree
Sekarang Anda dapat menggunakan pstreeperintah di terminal Anda
Jika perintah instalasi gagal, mis. Xcode saja tidak cukup pada versi OS Anda, instal Alat Pengembang Baris Perintah dengan menjalankan perintah ini sebelum menginstal pstree.
Saya berasumsi mungkin ada beberapa perubahan dalam versi MacOS atau Xcode saat ini, misalnya saya harus menginstal Alat Pengembang Baris Perintah sebelum menginstal pstree.
Ethan Stykes
Tidak ada perubahan, Anda selalu membutuhkan alat baris perintah Xcode seperti yang disebutkan dalam semua instruksi instal untuk 3 manajer paket
user151019
Oh !, semoga jawaban saya bermanfaat bagi seseorang.
treeps | cut -c 1-$COLUMNS
akan memotong garis panjang di lebar jendela terminal Anda saat ini. (atau nomor sederhana seperti100
bukan$COLUMNS
variabel)brew
sendiri - butuh waktu lama untuk memperbarui, dan tidak memberi tahu saya apa pun di terminal tempat ia beroperasi; jadi, bagi saya, jawaban ini adalah permata!Saya mengadaptasi skrip perl Greg Ercolano ke skrip python.
Contoh output:
sumber
Opsi lainnya adalah
htop
, yang memiliki opsi untuk ditampilkan dalam format hierarki. Anda dapat persF5
secara interaktif, atau gunakanhtop -t
saat peluncuran itu. Untuk memasang:brew install htop
Sumber: ServerFault
sumber
Rekatkan ini di terminal Anda untuk menginstal Homebrew yang memungkinkan Anda menginstal pstree.
Kemudian instal pstree menggunakan perintah ini
Sekarang Anda dapat menggunakan
pstree
perintah di terminal AndaJika perintah instalasi gagal, mis. Xcode saja tidak cukup pada versi OS Anda, instal Alat Pengembang Baris Perintah dengan menjalankan perintah ini sebelum menginstal pstree.
sumber