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
y a-t-il une commande qui retourne le pid au lieu de le tuer? (pidof ou pgrep ne fonctionne pas)
Vous pouvez utiliser pgrep
tant que vous incluez les options -f
. Ainsi, pgrep
correspond aux mots-clés de la commande entière (y compris les arguments) au lieu du nom du processus.
pgrep -f keyword
De la page de manuel :
-f
Le modèle ne correspond normalement qu'au nom du processus. Lorsque-f
est défini, la ligne de commande complète est utilisée.
Si vous voulez vraiment éviter pgrep, essayez:
ps -ef | awk '/[k]eyword/{print $2}'
Notez le []
autour de la première lettre du mot clé. C'est une astuce utile pour éviter de faire correspondre la commande awk
elle-même.
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.
ps -ef | grep KEYWORD | grep -v grep | awk '{print $2}'
J'utilise
ps -C "keyword" -o pid=
Cette commande devrait vous donner un numéro PID.
Ceci est disponible sur linux: mot-clé pidof
Pour tuer un processus avec un mot clé spécifique, vous pouvez créer un alias dans ~/.bashrc
(linux) ou ~/.bash_profile
(mac).
alias killps="kill -9 `ps -ef | grep '[k]eyword' | awk '{print $2}'`"