Nous pouvons installer GNU coreutils via brew
. Mais il n'y a pas ps
de problème . Pouvons-nous utiliser ps
GNU dans OS X?
J'aimerais utiliser GNU ps
car il a plus d'options et de fonctionnalités.
macos
command-line
Sanghyun Lee
la source
la source
ps
oups -ef
dans un terminal sur OSX? fonctionne pour moi sur OSX 10.7.5 sans modifications, sur deux machines différentes. C'est dans / bin / psps
car il a plus d'options et de fonctionnalités.Réponses:
Il n'y a pas de programme ps portable. La commande ps disponible sur linux provient, comme d'autres l'ont mentionné, du package "procps". La raison pour laquelle cela ne peut pas être porté sur OSX est que les noyaux Linux et OSX n'exposent pas ces informations de la même manière. Linux utilise un pseudo-système de fichiers dans / proc, tandis qu'OSX utilise la fonction sysctl. D'autres systèmes peuvent utiliser l'un ou l'autre mécanisme mais fournir des données dans un format différent, ou peuvent nécessiter des programmes comme ps pour lire directement à partir de la mémoire du noyau.
En général, il n'y a pas de norme sur la façon dont les informations de processus sont disponibles pour des programmes comme ps et top; le programme doit donc être conçu pour un système d'exploitation spécifique. S'il manque une fonctionnalité spécifique dans le ps OSX, vous devrez trouver un autre programme qui peut le faire, ou en écrire un vous-même (regardez le manuel sysctl, en particulier KERN_PROC comme point de départ), ou modifiez le ps existant commande pour ajouter la fonction.
Alternativement, si vous pouvez obtenir ce dont vous avez besoin en analysant la sortie de la commande ps elle-même, vous pourrez peut-être écrire un programme portable - la sortie avec l'
-o
option est raisonnablement fiable sur toutes les plateformes, en particulier si vous vous référez à la norme UNIX pour le noms de colonnes à utiliser.la source
/proc
système de fichiers est-il la seule méthode fournie par le noyau Linux pour obtenir une liste de processus, ou existe-t-il également des appels système distincts qui fournissent ces informations?Non - car il n'existe pas. Quant à savoir pourquoi il n'y a pas de module intégré
ps
dans lecoreutils
paquet de GNU , voyez cette réponse sur les forums Unix et Linux.La meilleure formule alternative disponible via Homebrew est
psgrep
:Cela dit, vous pouvez toujours
psgrep
vous comporter comme leps
ferait OS X. Par exemple:pgrep
est également disponible viabrew
, qui est syntaxiquement plus procheps
, mais moins efficace quepsgrep
:Tout est à moi.
la source
pgrep
fait également partie des versions récentes d'OS Xtype -a pgrep
pgrep is /usr/local/bin/pgrep
pgrep is /usr/bin/pgrep
proctools
package de MacPorts ou Homebrew fournitpgrep
etpkill
c'est ce que je cherchais personnellement lorsque je me suis présenté ici.ps
ne fait pas partie de GNU coreutils selon Wikpedia . La version fournie avec ma distribution Linux semble provenir de procps , mais il semble qu'il n'y ait pas de formule pour cela en homebrew. Il existe des formules pourpstree
lesquelles vous pouvez obtenir de superbes vues d'arborescence, et c'est égalementhtop
un autre bon visualiseur de processus.la source