133 votes

Obtenir des pids à partir du mot clé ps -ef | grep

Je veux utiliser ps -ef | grep "keyword" pour déterminer le pid d'un processus démon (il contient une chaîne unique dans ps -ef).

Je peux tuer le processus avec pkill keyword -t-il une commande qui renvoie le pid au lieu de le tuer? (pidof ou pgrep ne fonctionne pas)

271voto

Shawn Chin Points 29756

Vous pouvez utiliser pgrep aussi longtemps que vous incluez l' -f options. Que fait pgrep correspondent à des mots-clés dans l'ensemble de la commande (y compris les arguments) au lieu de simplement le nom du processus.

pgrep -f keyword

À partir de la page de man:

-f Le modèle est normalement seulement mis en correspondance avec le nom de processus. Lors de l' -f est définie, la ligne de commande complet est utilisé.


Si vous voulez vraiment éviter pgrep, essayez:

ps -ef | awk '/[k]eyword/{print $2}'

Remarque l' [] autour de la première lettre du mot-clé. C'est un bon truc pour éviter correspondant à l' awk commande elle-même.

59voto

Lewis Norton Points 1577

Essayer

ps -ef | grep "KEYWORD" | awk '{print $2}'

Cette commande devrait vous donner le PID des processus avec KEYWORD en eux. Dans ce cas, awk renvoie le contenu de la 2e colonne à partir de la sortie.

25voto

Vinayak Points 41

ps -ef | grep MOT-CLÉ | grep -v grep | grep -v KEYWORD | awk '{print $ 2}'

10voto

dbrank0 Points 4024

Ceci est disponible sur linux: mot clé pidof

-1voto

Dadam Points 1164

Vous pouvez également utiliser cut :

 ps -ef | grep "keyword" | cut -f1 -d" "
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X