J'essaie d'utiliser la commande ps -o pour obtenir uniquement des informations spécifiques sur les processus correspondant à un certain nom. Cependant, j'ai quelques problèmes à ce sujet. Lorsque j'essaie de l'utiliser même pour obtenir tous les processus, il renvoie simplement un sous-ensemble de ce qu'un ps -ef
normal renverrait (il ne renvoie pas le même nombre de résultats de sorte qu'il ne renvoie pas tous les processus en cours)
ps -ef -o pid,time,comm
Je veux essayer quelque chose comme ceci (ci-dessous) mais intégrer le ps -o pour obtenir des informations spécifiques (uniquement le PID)
ps -ef |grep `whoami`| grep firefox-bin
Tout conseil est apprécié sur la façon de le faire correctement, merci
Cela vous donnera le PID d'un processus par son nom:
pidof name
Que vous pouvez ensuite reconnecter à ps pour plus de détails:
ps -p $(pidof name)
C'est un peu vieux, mais je suppose que ce que vous voulez, c'est: ps -o pid -C PROCESS_NAME, par exemple:
ps -o pid -C bash
EDIT: En fonction du type de sortie que vous attendez, pgrep
serait plus élégant. À ma connaissance, cela est spécifique à Linux et donne un résultat similaire à celui décrit ci-dessus. Par exemple:
pgrep bash
ps -fC PROCESSNAME
ps et grep est une combinaison dangereuse - grep essaie de faire correspondre tout ce qui se trouve sur chaque ligne (donc le trop commun: grep -v grep hack). ps -C n'utilise pas grep, il utilise la table de processus pour une correspondance exacte. Ainsi, vous obtiendrez une liste précise avec: ps -fC sh plutôt que de trouver chaque processus avec sh quelque part sur la ligne.
Parfois, vous devez attribuer un nom au processus, dans ce cas:
ps aux | grep simple-scan
Exemple de sortie:
simple-scan 1090 0.0 0.1 4248 1432 ? S Jun11 0:00
Désolé, beaucoup de retard pour la fête, mais je vais ajouter ici que si vous voulez capturer des processus avec des noms identiques à votre chaîne de recherche, vous pouvez le faire.
pgrep -x PROCESS_NAME
-x Require an exact match of the process name, or argument list if -f is given. The default is to match any substring.
Ceci est extrêmement utile si votre processus original a créé des processus enfants (éventuellement zombie lorsque vous interrogez) qui préfixent le nom du processus original en leur propre nom et que vous essayez de les exclure de vos résultats. C'est ce que font beaucoup de démons UNIX. Mon exemple préféré est ninja-dev-sync .