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"
Génial, je ne la connaissais pas celle là ! Comme quoi, comment faire simple quand on peut faire compliqué :-) Disons alors que celà peut servir si "kill" n' est pas installé en standard (ok, c' est peu probable ;-) )
Bon, je sors...
Génial, je ne la connaissais pas celle là !
Comme quoi, comment faire simple quand on peut faire compliqué :-)
Disons alors que celà peut servir si "kill" n' est pas installé en
standard (ok, c' est peu probable ;-) )
Génial, je ne la connaissais pas celle là ! Comme quoi, comment faire simple quand on peut faire compliqué :-) Disons alors que celà peut servir si "kill" n' est pas installé en standard (ok, c' est peu probable ;-) )
Bon, je sors...
Kevin Denis
Le 19-08-2009, Erik a écrit :
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 :-) )
killall est fait pour ça, non? KILLALL(1) User Commands KILLALL(1)
NAME killall - kill processes by name
Donc killall le_processus_fou et hop les 50 d'un coup sont morts.
Ceci dit, faire attention a ne pas l'utiliser sur d'autres systèmes Unix. Selon l'OS, ça peut avoir un autre effet.. -- Kevin
Le 19-08-2009, Erik <erik@levacon.org> a écrit :
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 :-) )
killall est fait pour ça, non?
KILLALL(1) User Commands KILLALL(1)
NAME
killall - kill processes by name
Donc
killall le_processus_fou
et hop les 50 d'un coup sont morts.
Ceci dit, faire attention a ne pas l'utiliser sur d'autres systèmes Unix.
Selon l'OS, ça peut avoir un autre effet..
--
Kevin
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 :-) )
killall est fait pour ça, non? KILLALL(1) User Commands KILLALL(1)
NAME killall - kill processes by name
Donc killall le_processus_fou et hop les 50 d'un coup sont morts.
Ceci dit, faire attention a ne pas l'utiliser sur d'autres systèmes Unix. Selon l'OS, ça peut avoir un autre effet.. -- Kevin
Luc.Habert.00__arjf
Kevin Denis :
Ceci dit, faire attention a ne pas l'utiliser sur d'autres systèmes Unix. Selon l'OS, ça peut avoir un autre effet..
Ouaip, donc autant utiliser pkill qui est standard.
Kevin Denis :
Ceci dit, faire attention a ne pas l'utiliser sur d'autres systèmes Unix.
Selon l'OS, ça peut avoir un autre effet..
Ouaip, donc autant utiliser pkill qui est standard.