Você pode instalar o pstreecomando usando o Homebrew (meu favorito), MacPorts ou Fink e obterá uma linha de comando em árvore dos processos no seu 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.
Achei esta resposta útil em uma situação em que ainda não consegui instalar o Brew (depurando problemas do Packer + vmware).
Amos Shapira
1
Essa é uma ótima resposta e um ótimo ponto de partida também, mas seria mais útil se houvesse uma maneira de truncar linhas, pois elas ficam muito, muito longas no OSX e se abrem dentro da janela do terminal. Alguma idéia sobre isso?
Rolf
3
O @Rolf treeps | cut -c 1-$COLUMNScortará as linhas longas na largura da janela atual do terminal. (ou um número simples como 100em vez da $COLUMNSvariável)
DouglasDD
semelhante à situação de Amos Shapira, o que eu estou procurando é isso em brewsi - demorando muito tempo para atualizar e não me dizendo nada no terminal em que está sendo executado; então, para mim, essa resposta é uma jóia!
landru27 1/09/09
9
Adaptei o script perl de Greg Ercolano ao script python.
Outra opção é htop, que tem uma opção para exibir em formato de árvore. Você pode pressionar F5interativamente ou usar htop -tao iniciá-lo. Para instalar:brew install htop
Cole isso no seu terminal para instalar o Homebrew, que permitirá instalar o pstree.
Em seguida, instale o pstree usando este comando
brew install pstree
Agora você pode usar o pstreecomando no seu terminal
Caso o comando install falhe, ou seja, o Xcode sozinho não é suficiente na versão do seu sistema operacional, instale as Ferramentas de Desenvolvedor de Linha de Comando executando este comando antes de instalar o pstree.
Supus que poderia haver algumas alterações na versão atual do MacOS ou Xcode, por exemplo, tive que instalar as Ferramentas de Desenvolvedor de Linha de Comando antes de instalar o pstree.
Ethan Stykes
Sem nenhuma mudança que você sempre precisou de ferramentas de linha de comando Xcode como mencionado em todas as instruções de instalação para os 3 gestores de pacotes
user151019
Oh !, espero que minha resposta seja útil para alguém de alguma forma.
treeps | cut -c 1-$COLUMNS
cortará as linhas longas na largura da janela atual do terminal. (ou um número simples como100
em vez da$COLUMNS
variável)brew
si - demorando muito tempo para atualizar e não me dizendo nada no terminal em que está sendo executado; então, para mim, essa resposta é uma jóia!Adaptei o script perl de Greg Ercolano ao script python.
Exemplo de saída:
fonte
Outra opção é
htop
, que tem uma opção para exibir em formato de árvore. Você pode pressionarF5
interativamente ou usarhtop -t
ao iniciá-lo. Para instalar:brew install htop
Fonte: ServerFault
fonte
Cole isso no seu terminal para instalar o Homebrew, que permitirá instalar o pstree.
Em seguida, instale o pstree usando este comando
Agora você pode usar o
pstree
comando no seu terminalCaso o comando install falhe, ou seja, o Xcode sozinho não é suficiente na versão do seu sistema operacional, instale as Ferramentas de Desenvolvedor de Linha de Comando executando este comando antes de instalar o pstree.
fonte