É extremamente importante que você use uma versão em linha de comando? Se você deseja apenas ver a árvore, por que não usar o "Activity Monitor" e escolher "Todos os processos, hierarquicamente"?
AlanGBaker
Respostas:
9
O pstree geralmente faz parte da instalação padrão ou é facilmente instalável nos sistemas bsd. É isso que eu uso. Por exemplo, você pode instalá-lo via macports em um mac.
O Htop também é um ótimo visualizador de processos e possui a visualização em "árvore" como uma das principais opções na barra de status inferior (F5).
Para instalar no OSX com homebrew, use brew install htop.
jsears
3
Até agora, não acredito que o OSX tenha construído isso.
Mas aqui está uma resposta que eu publiquei também no stackexchange ; um pequeno script perl que determina a hierarquia do processo e a imprime em um formato recuado usando a saída do ps (1) interno do OSX.
Testado no OSX 10.6 e 10.9, e também deve funcionar no Linux (Sci Linux 6).
#!/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 kids
PrintLineage($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} = ();
push(@{ $p{$ppid}{kids} }, $pid); # Add our pid to parent's kid
}
PrintLineage(1, ""); # recurse to print lineage starting with pid 1
Como é chamado o pacote? MacPorts é o que estou procurando, mas seria útil que outras pessoas conhecessem os três.
Jim Stewart
2
-1 - parece um pouco incorreto. se é certo, por favor, ajudem sua resposta com mais detalhes sobre como instalar usando esses sistemas de pacotes em vez de apenas mencionar os sistemas de gerenciamento de pacotes (ESP MacPorts.)
Respostas:
O pstree geralmente faz parte da instalação padrão ou é facilmente instalável nos sistemas bsd. É isso que eu uso. Por exemplo, você pode instalá-lo via macports em um mac.
fonte
ps
não tem essa capacidade, mas eu vou me controlarpstree
. Obrigado por mencionar!brew install pstree
com hombrewO Htop também é um ótimo visualizador de processos e possui a visualização em "árvore" como uma das principais opções na barra de status inferior (F5).
fonte
brew install htop
.Até agora, não acredito que o OSX tenha construído isso.
Mas aqui está uma resposta que eu publiquei também no stackexchange ; um pequeno script perl que determina a hierarquia do processo e a imprime em um formato recuado usando a saída do ps (1) interno do OSX.
Testado no OSX 10.6 e 10.9, e também deve funcionar no Linux (Sci Linux 6).
fonte
Isso não funciona no OSX, mas para o FreeBSD é o comando ps (1) com a opção -d. Se parece com isso:
fonte
Se você realmente ama o GNU ps, pode instalá-lo no OSX através de um dos três grandes sistemas de pacotes:
pkgsrc (NetBSD) - meu favorito, pois funciona nos Unixes mais populares
MacPorts (OSX)
Fink (Debian, mas não compartilha o pacote de pacotes e, é claro, não compartilha as compilações)
fonte