Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Astuce: comment tuer de multiples instance d' un processus / how to kill multiple instances of a crazy processus

36 réponses
Avatar
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"

Hope this will help some of you ;-)


Erik LE VACON

10 réponses

1 2 3 4
Avatar
Nicolas George
Luc Habert wrote in message <h6h1m2$257h$:
pkill est dans la norme single unix, il est donc standard



grep -r pkill /books/george/doc/susv3 || echo Non.
Avatar
Luc.Habert.00__arjf
My bad. Pourquoi diable je croyais ça?
Avatar
Nicolas George
Luc Habert wrote in message <h6h31k$2j8e$:
My bad. Pourquoi diable je croyais ça?



Probablement parce que c'est disponible de base dans les Solaris avec la
même sémantique que sous Linux (alors que killall...).
Avatar
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.


Avatar
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
Avatar
Nicolas George
Cumbalero wrote in message <4a8c32b0$0$15171$:
C'est pour ça que je dis plus bas:
"Je te laisse consulter les man de ces 2 commandes pour comprendre les
différences."



Donc en d'autres termes, tu étais conscient que Luc avait raison, mais tu as
cherché à le contredire quand même.
Avatar
Cumbalero
Nicolas George a écrit :

Donc en d'autres termes, tu étais conscient que Luc avait raison, mais tu as
cherché à le contredire quand même.



Non, puisque pkill n'est pas présent sur AIX, contrairement à killall.

A+
JF
Avatar
Nicolas George
Cumbalero wrote in message <4a8c47cd$0$409$:
Non, puisque pkill n'est pas présent sur AIX, contrairement à killall.



killall n'est pas présent sur AIX, c'est killall qui est présent, mais ce
n'est pas la même chose.
Avatar
Cumbalero
Nicolas George a écrit :
Cumbalero wrote in message <4a8c47cd$0$409$:
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
Avatar
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!
1 2 3 4