509 votes

Comment peux tuer un processus par son nom au lieu de PID ?

Par exemple, parfois, quand je lance Firefox, il dit un Firefox processus est déjà en cours d'exécution. Alors, je dois faire ceci:

jeremy@jeremy-desktop:~$ ps aux | grep firefox
jeremy    7451 25.0 27.4 170536 65680 ?        Sl   22:39   1:18 /usr/lib/firefox-3.0.1/firefox
jeremy    7578  0.0  0.3   3004   768 pts/0    S+   22:44   0:00 grep firefox
jeremy@jeremy-desktop:~$ kill 7451

Ce que j'aimerais c'est une commande qui permette de faire tout cela pour moi. Il faudrait une chaîne d'entrée et grep (ou autre) dans la liste des processus, et tuer tous les processus de la sortie:

jeremy@jeremy-desktop:~$ killbyname firefox

J'ai essayé de faire ça en PHP mais exec('ps aux') semble être la seule à afficher les processus qui ont été exécutées avec exec() dans le script PHP (le seul qu'il montre c'est lui-même.)

715voto

shoosh Points 34322
<pre><code></code><p><a href="http://linux.about.com/library/cmd/blcmdl1_pkill.htm">http://Linux.about.com/library/cmd/blcmdl1_pkill.htm</a></p></pre>

71voto

Andre Bossard Points 4655

Vous pouvez tuer tous les processus par nom avec killall <name>

killall envoie un signal à tous les processus de l'exécution de la spécifié commandes. Si aucun signal n'nom est spécifié, SIGTERM est envoyé.

Les signaux peuvent être spécifiée par nom (ex -HUP) ou par numéro (p. ex. -1) ou par l'option -s.

Si le nom de la commande n'est pas régulier l'expression (option -r) et contient un la barre oblique (/), le processus de l'exécution de cette fichier particulier seront sélectionnés pour tuer, indépendamment de leur nom.

Mais si vous ne voyez pas le processus avec ps aux et probablement n'avez pas le droit de le tuer ...

57voto

Walter Points 3584

Alternative un peu plus longtemps :

12voto

Dhiraj Points 70

Sur Mac, je ne pouvais pas trouver le pgrep et pkill ni a killall travail a donc écrit un script simple à un paquebot :-

S’il y a un moyen plus facile de faire cette part s’il vous plaît alors.

5voto

Bittercoder Points 4692

J’utilise habituellement la commande killall voir ici pour plus de détails.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X