Astuce: comment tuer de multiples instance d' un processus / how to kill multiple instances of a crazy processus
36 réponses
Erik
Bonjour à tous,
Situation: vous souhaitez tuer plusieurs instances d' un processus
dupliqué, par exemple un script bash, faisant plusieurs fork, qui s'
emballe. Avec un ps -a, vous vous retrouvez avec 50 processus qui
portent le meme nom et qui font des forks à tour de bras (c' est du vécu
en prog système avec un script en test qui bug :-) )
La commande suivante peut vous aider:
ps -A |grep '<NOM_DE_VOTRE_PROCESSUS> '| awk {'print $1'} |xargs kill
On peut sans problème coder un petit script bash qui prend le nom du
processus (ou le tronc commun aux instances multiples) en argument,
nommé par ex, "multikill.sh"
En espérant avoir aidé ;-)
Erik LE VACON
================ E N G L I S H V E R S I O N ================
Hi folks,
I assume you have already lived such a situation: you wish you could
kill many instances of a duplicated process, as example, a bash script,
with many forks inside, which becomes crazy and duplicates itself, which
duplicates itself ... and so on... With a "ps -a", you have finally 50,
100, 1000 processus with the same name, or part of the same name, making
children as well (i assume you have already seen that while testing a
buggy script in system programming tests ;-) )
The following command may be of some help:
ps -A |grep '<process_name> '| awk {'print $1'} |xargs kill
We may code a single bash script which takes the name of the process to
kill (or the common part of the name of the father and children
processes) as an argument, named as example "multikill.sh"
Probablement parce que c'est disponible de base dans les Solaris avec la même sémantique que sous Linux (alors que killall...).
Erik
Exact, Nicolas, l' espace à la fin de mon grep est une faute de frappe... impardonnable, pour le reste, je viens de tester, et tu es dans le vrai. Remarque, au moins, celà a eu le mérite de lancer une polémique constructive sur le forum ;-)
Nicolas George a écrit :
Erik wrote in message :
ps -A |grep '<NOM_DE_VOTRE_PROCESSUS> '| awk {'print $1'} |xargs kill
Outre le fait que pkill ou killall sont plus courts et plus fiables, ta commande a plein de problèmes :
- l'espace à la fin de ton grep va faire échouer la recherche ;
- ps -A peut tronquer les noms de commandes trop longs ;
- ta commande trouve aussi les commandes où le nom cherché n'est qu'une partie du nom.
Exact, Nicolas, l' espace à la fin de mon grep est une faute de
frappe... impardonnable, pour le reste, je viens de tester, et tu es
dans le vrai.
Remarque, au moins, celà a eu le mérite de lancer une polémique
constructive sur le forum ;-)
Nicolas George a écrit :
Erik wrote in message <4A8BF815.2090003@levacon.org>:
ps -A |grep '<NOM_DE_VOTRE_PROCESSUS> '| awk {'print $1'} |xargs kill
Outre le fait que pkill ou killall sont plus courts et plus fiables, ta
commande a plein de problèmes :
- l'espace à la fin de ton grep va faire échouer la recherche ;
- ps -A peut tronquer les noms de commandes trop longs ;
- ta commande trouve aussi les commandes où le nom cherché n'est qu'une
partie du nom.
Exact, Nicolas, l' espace à la fin de mon grep est une faute de frappe... impardonnable, pour le reste, je viens de tester, et tu es dans le vrai. Remarque, au moins, celà a eu le mérite de lancer une polémique constructive sur le forum ;-)
Nicolas George a écrit :
Erik wrote in message :
ps -A |grep '<NOM_DE_VOTRE_PROCESSUS> '| awk {'print $1'} |xargs kill
Outre le fait que pkill ou killall sont plus courts et plus fiables, ta commande a plein de problèmes :
- l'espace à la fin de ton grep va faire échouer la recherche ;
- ps -A peut tronquer les noms de commandes trop longs ;
- ta commande trouve aussi les commandes où le nom cherché n'est qu'une partie du nom.
Cumbalero
Nicolas George a écrit :
Cumbalero wrote in message <h6h0a5$dd$:
[] / #which killall [ /]# which killall
killall est plus ancien et par conséquent plus répandu.
Remplace which par man, et tu découvriras peut-être que ces deux versions ne font pas du tout la même chose.
C'est pour ça que je dis plus bas: "Je te laisse consulter les man de ces 2 commandes pour comprendre les différences."
A+ JF
Nicolas George a écrit :
Cumbalero wrote in message <h6h0a5$dd$1@writer.imaginet.fr>:
[root@kalif] / #which killall
[root@nagios-dev /]# which killall
killall est plus ancien et par conséquent plus répandu.
Remplace which par man, et tu découvriras peut-être que ces deux versions ne
font pas du tout la même chose.
C'est pour ça que je dis plus bas:
"Je te laisse consulter les man de ces 2 commandes pour comprendre les
différences."
Non, puisque pkill n'est pas présent sur AIX, contrairement à kill all.
killall n'est pas présent sur AIX, c'est killall qui est présent, m ais ce n'est pas la même chose.
Au moins l'un de nous deux a besoin d'un café.
Dans le doute, je vais quand même m'en servir un.
A+ JF
Mihamina Rakotomandimby
08/19/2009 05:53 PM, Erik:
Remarque, au moins, celà a eu le mérite de lancer une polémique constructive sur le forum ;-)
Hum... tu es nouveau. :-) - veux-tu bien lire ceci s'il te plait? http://www.usenet-fr.net/fur/usenet/repondre-sur-usenet.html - les polémiques (en tout genre) autour de linux c'est: fr.comp.os.linux.debats (suivi posotionné)
Le jour officiel des "polémiques" est vendredi, tu arrive donc à point. Sinon, bienvenue!
08/19/2009 05:53 PM, Erik:
Remarque, au moins, celà a eu le mérite de lancer une polémique
constructive sur le forum ;-)
Hum... tu es nouveau. :-)
- veux-tu bien lire ceci s'il te plait?
http://www.usenet-fr.net/fur/usenet/repondre-sur-usenet.html
- les polémiques (en tout genre) autour de linux c'est:
fr.comp.os.linux.debats (suivi posotionné)
Le jour officiel des "polémiques" est vendredi, tu arrive donc à point.
Sinon, bienvenue!
Remarque, au moins, celà a eu le mérite de lancer une polémique constructive sur le forum ;-)
Hum... tu es nouveau. :-) - veux-tu bien lire ceci s'il te plait? http://www.usenet-fr.net/fur/usenet/repondre-sur-usenet.html - les polémiques (en tout genre) autour de linux c'est: fr.comp.os.linux.debats (suivi posotionné)
Le jour officiel des "polémiques" est vendredi, tu arrive donc à point. Sinon, bienvenue!