Quel est l'équivalent OS X / BSD de la commande GNU "ps auxf"?
13
Dans les utilitaires GNU, ps auxfdonne la liste des processus avec forest (tree). Existe-t-il un équivalent pour cette commande sur les systèmes BSD / OS X?
Est-il désespérément important d'en utiliser une version en ligne de commande? Si vous voulez juste voir l'arborescence, pourquoi ne pas utiliser "Moniteur d'activité" et choisir "Tous les processus, hiérarchiquement"?
AlanGBaker
Réponses:
9
pstree fait généralement partie de l'installation par défaut ou facilement installable sur les systèmes bsd. Voilà ce que j'utilise. Par exemple, vous pouvez l'installer via macports sur un mac.
@cwd votre commentaire devrait être une réponse :)
okutane
6
Htop est également un très bon visualiseur de processus, et il a la vue "arborescence" comme l'une de ses principales options dans la barre d'état inférieure (F5).
Pour installer sous OSX avec homebrew, utilisez brew install htop.
jsears
3
Jusqu'à présent, je ne pense pas que OSX ait un système intégré qui le fasse.
Mais voici une réponse que j'ai également publiée sur stackexchange ; un petit script perl qui détermine la hiérarchie du processus et l'imprime sous une forme indentée en utilisant la sortie du ps intégré d'OSX (1).
Testé sur OSX 10.6 et 10.9, et devrait également fonctionner sur 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
Comment s'appelle le package? MacPorts est ce que je recherche, mais il serait utile que les autres connaissent les trois.
Jim Stewart
2
-1 - semble quelque peu incorrect. si c'est le cas, veuillez étayer votre réponse avec plus de détails sur la façon d'installer à l'aide de ces systèmes de packages plutôt que de simplement mentionner les systèmes de gestion des packages (en particulier MacPorts)
Réponses:
pstree fait généralement partie de l'installation par défaut ou facilement installable sur les systèmes bsd. Voilà ce que j'utilise. Par exemple, vous pouvez l'installer via macports sur un mac.
la source
ps
n'ait pas cette capacité, mais je me débrouillerai avecpstree
. Merci de l'avoir mentionné!brew install pstree
avec hombrewHtop est également un très bon visualiseur de processus, et il a la vue "arborescence" comme l'une de ses principales options dans la barre d'état inférieure (F5).
la source
brew install htop
.Jusqu'à présent, je ne pense pas que OSX ait un système intégré qui le fasse.
Mais voici une réponse que j'ai également publiée sur stackexchange ; un petit script perl qui détermine la hiérarchie du processus et l'imprime sous une forme indentée en utilisant la sortie du ps intégré d'OSX (1).
Testé sur OSX 10.6 et 10.9, et devrait également fonctionner sur Linux (Sci Linux 6).
la source
Cela ne fonctionne pas sous OSX, mais pour FreeBSD c'est la commande ps (1) avec l'option -d. Ressemble à ça:
la source
Si vous aimez vraiment GNU ps, vous pouvez l'installer sur OSX via l'un des 3 grands systèmes de packages:
pkgsrc (NetBSD) - mon préféré car il fonctionne sur les Unix les plus populaires
MacPorts (OSX)
Fink (Debian, mais ne partage pas le paquet, et bien sûr ne partage pas les builds)
la source