Puede instalar el pstreecomando usando Homebrew (mi favorito personal), MacPorts o Fink y obtendrá una vista de árbol de línea de comandos de procesos en su Mac.
Con Homebrew instalado, simplemente ejecute:
brew install pstree
luego úsalo como pstreedesde la línea de comandos.
#!/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.
Encontré esta respuesta útil en una situación en la que aún no podía instalar Brew (depuración de problemas de Packer + vmware).
Amos Shapira
1
Esta es una gran respuesta y un excelente punto de partida también, pero sería más útil si hubiera una forma de truncar las líneas, ya que se vuelven realmente muy largas en OSX y se ajustan dentro de la ventana de terminal. ¿Alguna idea sobre esto?
Rolf
3
@Rolf treeps | cut -c 1-$COLUMNScortará las largas líneas en el ancho de su ventana de terminal actual. (o un número simple como en 100lugar de la $COLUMNSvariable)
DouglasDD
similar a la situación de Amos Shapira, lo que me hace buscar esto es en brewsí mismo: me lleva mucho tiempo actualizarlo y no me dice nada en el terminal donde se está ejecutando; entonces, para mí, ¡esta respuesta es una joya!
landru27
9
Adapte el script perl de Greg Ercolano al script python.
Otra opción es htop, que tiene una opción para mostrar en formato de árbol. Puede presionar de forma F5interactiva o usar htop -tal iniciarlo. Instalar:brew install htop
Pegue esto en su terminal para instalar Homebrew que le permitirá instalar pstree.
Luego instale pstree usando este comando
brew install pstree
Ahora puedes usar el pstreecomando en tu terminal
En caso de que falle el comando de instalación, es decir, Xcode por sí solo no es suficiente en la versión de su sistema operativo, instale Command Line Developer Tools ejecutando este comando antes de instalar pstree.
Supuse que podría haber algunos cambios en la versión actual de MacOS o Xcode, por ejemplo, tuve que instalar Command Line Developer Tools antes de instalar pstree.
Ethan Stykes
No, sin cambios, siempre necesitó las herramientas de línea de comandos de Xcode como se menciona en todas las instrucciones de instalación para los 3 administradores de paquetes
usuario151019
¡Oh !, espero que mi respuesta sea útil para alguien de alguna manera.
treeps | cut -c 1-$COLUMNS
cortará las largas líneas en el ancho de su ventana de terminal actual. (o un número simple como en100
lugar de la$COLUMNS
variable)brew
sí mismo: me lleva mucho tiempo actualizarlo y no me dice nada en el terminal donde se está ejecutando; entonces, para mí, ¡esta respuesta es una joya!Adapte el script perl de Greg Ercolano al script python.
Salida de ejemplo:
fuente
Otra opción es
htop
, que tiene una opción para mostrar en formato de árbol. Puede presionar de formaF5
interactiva o usarhtop -t
al iniciarlo. Instalar:brew install htop
Fuente: ServerFault
fuente
Pegue esto en su terminal para instalar Homebrew que le permitirá instalar pstree.
Luego instale pstree usando este comando
Ahora puedes usar el
pstree
comando en tu terminalEn caso de que falle el comando de instalación, es decir, Xcode por sí solo no es suficiente en la versión de su sistema operativo, instale Command Line Developer Tools ejecutando este comando antes de instalar pstree.
fuente