Linux / Bash, à l'aide de ps -o pour obtenir des processus par nom spécifique?
Je suis en train d'utiliser la ps -o de la commande pour obtenir seulement pour les infos sur les processus correspondant à un certain nom. Cependant, je vais avoir quelques questions sur ce, lorsque j'essaie d'utiliser cette même simplement obtenir tous les processus, comme si, elle retourne un sous-ensemble de ce qu'une normale ps -ef
serait de retour (il n'a pas de retour près le même nombre de résultats si ce n'est pas le retour de tous les processus en cours d'exécution)
ps -ef -o pid,time,comm
Je veux essayer quelque chose comme ceci (ci-dessous), mais intégrer le ps -o de simplement obtenir des informations à partir de celui-ci (uniquement le PID)
ps -ef |grep `whoami`| grep firefox-bin
Tout conseil est apprécié de la façon de faire cela correctement, merci
Vous devez vous connecter pour publier un commentaire.
Ainsi, vous obtenez le PID d'un processus par nom:
Que vous pouvez, puis rebranchez-le dans la ps pour plus de détails:
pgrep
peut également être utilisé, mais il ya quelques différences dans la façon dont ils travaillent. Par exemple, sur mon système qui fonctionne apache2,pidof
trouverez "apache2", mais pas "apache", tandis quepgrep
trouverez de toute façon.brew install pidof
pidof
n'est pas normalisé par la norme POSIX et n'est donc pas garanti, comme en témoigne OS X n'ayant paspidof
.C'est un peu vieux, mais je suppose que ce que vous voulez, c'est: ps -o pid -C NOM_PROCESSUS, par exemple:
EDIT: Dependening sur le genre de sortie que vous attendez,
pgrep
serait plus élégant. Cela, à ma connaissance, est spécifique à Linux et le résultat dans le même résultat que ci-dessus. Par exemple:pgrep
n'est pas spécifique à Linux, comme il a été présenté avec Solaris et plus tard a été ré-implémenté sous Linux et *Bsd.ps et grep est une combinaison dangereuse -- grep essaie de faire correspondre tout sur chaque ligne (donc beaucoup trop souvent: grep -v grep hack). ps -C ne pas utiliser grep, il utilise le processus de la table pour une correspondance exacte. Ainsi, vous aurez une liste précise avec: ps -fC sh au lieu de trouver tous les processus avec sh quelque part sur la ligne.
-C
de la même manière, savez-vous comment faire cela sur mac? Merci!Parfois, vous avez besoin de filtrer les processus par nom - dans ce cas:
Exemple de sortie:
Désolé, beaucoup de retard à la fête, mais je vais ajouter ici que si vous vouliez les processus de capture avec des noms identiques à votre chaîne de recherche, vous pourriez faire
pgrep -x PROCESS_NAME
Ce qui est extrêmement utile si votre procédé original enfant créé processus (éventuellement zombie lors d'une requête) en préfixe le processus original de nom en leur propre nom, et vous essayez de les exclure de vos résultats. Il existe de nombreux UNIX démons qui le fassent. Mon exemple est ninja-dev-sync.