Existe-t-il un moyen (peut-être un script) d'automatiser ce processus:
petr@sova:~$ ps -ef | grep middleman
petr 18445 2312 1 12:06 pts/2 00:00:01 /home/petr/.rvm/gems/Ruby-1.9.3-p362/bin/middleman
petr 18581 13621 0 12:08 pts/0 00:00:00 grep --color=auto middleman
petr@sova:~$ kill -9 18445
Malheureusement, pkill
est trop faible car je dois utiliser l'option -9
sur kill
.
Vous pouvez utiliser votre shell pour effectuer cette tâche pour vous:
kill -9 $(pidof middleman)
Le shell exécute d'abord la commande pidof middleman
. La sortie de pidof (8) est l'identifiant du processus. Ainsi, le shell substitue la commande pidof
- avec l'ID de processus et exécute kill -9 18845
(ou quel que soit l'identifiant de processus correct).
Il existe une solution encore plus simple que celle de qbi: killall
vous permet de tuer les processus par leur nom et de spécifier des signaux.
killall -9 middleman
Voir man killall
pour plus d'informations et d'options supplémentaires (il en existe plusieurs).
Comme son nom l'indique, cela envoie le signal à tous les processus nommés middleman
. Mais ce n'est pas différent des autres moyens (comme pkill
). De plus, pkill -9 middleman
ciblera également les processus dont le nom correspond mais n'est pas égal à middleman
, tel que middleman2
.
Les autres réponses sont tout à fait correctes, mais je pourrais aussi bien ajouter une troisième option afin que toutes soient documentées ici. Vous pouvez aussi utiliser:
pkill -9 middleman
Voir man pkill
pour plus d'informations et des options supplémentaires.
Peu importe laquelle de ces méthodes vous utilisez. Ils vont tous travailler. Mais connaître les options si vous le souhaitez si vous souhaitez modifier le comportement d’une manière ou d’une autre, car les pages de manuel correspondantes indiquent les autres options correspondantes disponibles.
pkill -9 -f middleman
L'option -f
lui permet de correspondre à la ligne de commande complète, plutôt qu'au seul nom du processus.
Notez que -9
devrait être un signal de dernier recours, pas quelque chose à utiliser systématiquement.
Juste pour le plaisir, j'aimerais ajouter une manière plus manuelle, à l'ancienne
kill -9 `ps aux | grep middleman | awk '{print $2}'`
killall -9 -ir regex_pattern
qui est interactif (sûr) et correspond au nom de commande partiel.