Это отчаянно важно, что вы используете его версию командной строки? Если вы просто хотите увидеть дерево, почему бы не использовать «Монитор активности» и выбрать «Все процессы, иерархически»?
AlanGBaker
Ответы:
9
Обычно pstree является частью установки по умолчанию или легко устанавливается в системах BSD. Это то, что я использую. Например, вы можете установить его через macports на Mac.
Htop также является действительно хорошим средством просмотра процессов, и он имеет вид дерева в качестве одного из основных параметров в нижней строке состояния (F5).
Чтобы установить в OSX с homebrew, используйте brew install htop.
Jsears
3
Пока я не верю, что OSX имеет встроенную функцию, которая делает это.
Но вот ответ, который я разместил на stackexchange ; небольшой Perl-скрипт, который определяет иерархию процесса и печатает ее в виде отступа, используя выходные данные встроенного в OSX ps (1).
Протестировано на OSX 10.6 и 10.9, и должно работать на Linux (Sci Linux 6).
#!/usr/bin/perl
# treeps -- show ps(1) as process hierarchy -- v1.0 erco@seriss.com 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
Как называется пакет? MacPorts - это то, что я ищу, но другим было бы полезно узнать все три.
Джим Стюарт
2
-1 - кажется несколько неверным. если это правильно, пожалуйста, поддержите ваш ответ более подробной информацией о том, как установить с использованием этих систем пакетов, а не просто
Ответы:
Обычно pstree является частью установки по умолчанию или легко устанавливается в системах BSD. Это то, что я использую. Например, вы можете установить его через macports на Mac.
источник
ps
нет этой способности, но я справлюсь самpstree
. Спасибо за упоминание этого!brew install pstree
с ХомбрюHtop также является действительно хорошим средством просмотра процессов, и он имеет вид дерева в качестве одного из основных параметров в нижней строке состояния (F5).
источник
brew install htop
.Пока я не верю, что OSX имеет встроенную функцию, которая делает это.
Но вот ответ, который я разместил на stackexchange ; небольшой Perl-скрипт, который определяет иерархию процесса и печатает ее в виде отступа, используя выходные данные встроенного в OSX ps (1).
Протестировано на OSX 10.6 и 10.9, и должно работать на Linux (Sci Linux 6).
источник
Это не работает в OSX, но для FreeBSD это команда ps (1) с опцией -d. Выглядит так:
источник
Если вы действительно любите GNU PS, вы можете установить его на OSX через одну из трех больших систем:
pkgsrc (NetBSD) - мой любимый, так как он работает на самых популярных Unixes
MacPorts (OSX)
Fink (Debian, но не разделяет пакетный набор и, конечно, не разделяет сборки)
источник