La plupart du temps, vous souhaiterez qu'un programme se termine par ses propres moyens ou, s'il s'agit d'une application graphique, en utilisant l'option de menu appropriée ou en utilisant la croix dans le coin.
De temps en temps, un programme se bloque, auquel cas vous aurez besoin d'une méthode pour le tuer. Vous pouvez également vouloir tuer un programme qui s'exécute en arrière-plan et dont vous n'avez plus besoin.
Ce guide fournit une méthode pour supprimer toutes les versions de la même application en cours d'exécution sur votre système.
Comment utiliser la commande killall
La commande killall tue tous les processus par leur nom. Cela signifie que si vous avez trois versions du même programme exécutant la commande killall, vous tuez toutes les trois.
Par exemple, ouvrez un petit programme tel qu'un visualiseur d'images. Ouvrez maintenant une autre copie du même visualiseur d'images. Pour mon exemple, j'ai choisi Xviewer qui est un clone de Eye Of Gnome.
Ouvrez maintenant un terminal et tapez la commande suivante:
tuer tous
Par exemple, pour tuer toutes les instances de Xviewer, tapez ce qui suit:
killall xviewer
Les deux instances du programme que vous avez choisi de tuer vont maintenant se fermer.
Tuer le processus exact
killall peut produire des résultats étranges. Eh bien voici une raison pour laquelle. Si vous avez un nom de commande de plus de 15 caractères, la commande killall ne fonctionnera que sur les 15 premiers caractères. Si donc vous avez deux programmes qui partagent les mêmes 15 premiers caractères, les deux programmes seront annulés bien que vous ne vouliez en tuer qu'un seul.
Pour contourner ce problème, vous pouvez spécifier le commutateur suivant qui ne supprimera que les fichiers correspondant au nom exact.
killall -e
Ignorer le cas lors de l'exécution de programmes
Pour vous assurer que la commande killall ignore la casse du nom de programme fourni, utilisez la commande suivante:
killall -I
killall --ignore-case
Tuer tous les programmes du même groupe
Lorsque vous exécutez une commande telle que la suivante, deux processus sont créés:
ps -ef | Moins
Une commande concerne la partie ps -ef qui répertorie tous les processus en cours sur votre système et la sortie est redirigée vers la commande less.
Les deux programmes appartiennent au même groupe qui est bash.
Pour tuer les deux programmes en même temps, vous pouvez exécuter la commande suivante:
killall -g
Par exemple, pour tuer toutes les commandes s'exécutant dans un shell bash, exécutez ce qui suit:
killall -g bash
Incidemment, pour répertorier tous les groupes en cours d'exécution, exécutez la commande suivante:
ps -g
Obtenir la confirmation avant de tuer les programmes
De toute évidence, la commande killall est une commande assez puissante et vous ne voulez pas tuer accidentellement les mauvais processus.
En utilisant le commutateur suivant, il vous sera demandé si vous êtes certain avant que chaque processus ne soit tué.
killall -i
Éliminer les processus en cours d'exécution depuis un certain temps
Imaginez que vous dirigiez un programme et que cela prenne beaucoup plus de temps que prévu.
Vous pouvez tuer la commande de la manière suivante:
killall -o h4
Le h dans la commande ci-dessus reste pendant des heures.
Vous pouvez également spécifier l’un des éléments suivants:
- s - secondes
- m - minutes
- h - heures
- d - jours
- w - semaines
- M - mois
- y - ans
Sinon, si vous souhaitez supprimer les commandes qui viennent juste de démarrer, vous pouvez utiliser le commutateur suivant:
killall -y h4
Cette fois, la commande killall supprimera tous les programmes exécutés pendant moins de 4 heures.
Ne me dites pas quand un processus n'est pas tué
Par défaut, si vous essayez de tuer un programme qui ne s'exécute pas, vous recevrez le message d'erreur suivant:
nom du programme: aucun processus trouvé
Si vous ne voulez pas savoir si le processus n'a pas été trouvé, utilisez la commande suivante:
killall -q
Utiliser des expressions régulières
Au lieu de spécifier le nom d'un programme ou d'une commande, vous pouvez spécifier une expression régulière afin que tous les processus correspondant à l'expression régulière soient fermés par la commande killall.
Pour utiliser une expression régulière, utilisez la commande suivante:
killall -r
Tuer des programmes pour un utilisateur spécifique
Si vous souhaitez supprimer un programme exécuté par un utilisateur spécifique, vous pouvez spécifier la commande suivante:
killall -u
Si vous voulez tuer tous les processus pour un utilisateur particulier, vous pouvez omettre le nom du programme.
Attendre que killall finisse
Par défaut, killall renvoie directement au terminal lorsque vous l'exécutez, mais vous pouvez le forcer à attendre que tous les processus spécifiés aient été fermés avant de revenir à la fenêtre du terminal.
Pour ce faire, exécutez la commande suivante:
killall -w
Si le programme ne meurt jamais, killall continuera également à vivre.
Signaux Signaux Signaux
Par défaut, la commande killall envoie le signal SIGTERM aux programmes pour les faire fermer. Il s'agit de la méthode la plus propre pour tuer les programmes.
Vous pouvez toutefois envoyer d'autres signaux à l'aide de la commande killall et les lister à l'aide de la commande suivante:
killall -l
La liste renvoyée ressemblera à ceci:
- HUP
- INT
- QUITTER
- MAUVAIS
- PIÈGE
- ABRT
- IOT
- AUTOBUS
- FPE
- TUER
- USR1
- SEGV
- USR2
- TUYAU
- ALRM
- TERME
- STKFLT
- CHLD
- CONT
- ARRÊTEZ
- TSTP
- TTIN
- TTOU
- URG
- XCPU
- XFSZ
- VTALRM
- PROGRAMME
- WYNCH
- IO
- PWR
- SYS
- INUTILISÉ
Cette liste est extrêmement longue. Pour en savoir plus sur la signification de ces signaux, exécutez la commande suivante:
signal homme 7
En règle générale, vous devez utiliser l'option SIGTERM par défaut, mais si le programme refuse de mourir, vous pouvez utiliser SIGKILL, ce qui oblige le programme à se fermer, mais de manière indigne.
Autres moyens de tuer un programme
Il existe 5 autres moyens de tuer une application Linux, comme indiqué dans le guide lié.
Cependant, pour vous épargner l'effort de cliquer sur le lien, voici une section montrant en quoi consistent ces commandes et pourquoi vous pouvez utiliser ces commandes sur killall.
Le premier est la commande kill. La commande killall que vous avez vue permet de tuer toutes les versions du même programme. La commande kill est conçue pour tuer un processus à la fois et est donc plus ciblée.
Pour exécuter la commande kill, vous devez connaître l'ID du processus que vous souhaitez tuer. Pour cela, vous pouvez utiliser la commande ps.
Par exemple, pour rechercher une version en cours d'exécution de Firefox, vous pouvez exécuter la commande suivante:
ps -ef | grep firefox
Vous verrez une ligne de données avec la commande / usr / lib / firefox / firefox à la fin. Au début de la ligne, vous verrez votre ID utilisateur et le numéro après l'ID utilisateur est l'ID de processus.
En utilisant l'ID de processus, vous pouvez tuer Firefox en exécutant la commande suivante:
tuer -9
Une autre façon de tuer un programme consiste à utiliser la commande xkill. Ceci est généralement utilisé pour supprimer les applications graphiques défectueuses.
Pour tuer un programme tel que Firefox, ouvrez un terminal et exécutez la commande suivante:
xkill
Le curseur va maintenant se transformer en une grande croix blanche. Passez le curseur de la souris sur la fenêtre que vous souhaitez supprimer et cliquez avec le bouton gauche de la souris. Le programme va se terminer immédiatement.
Une autre façon de tuer un processus consiste à utiliser la commande Linux top. La commande top répertorie tous les processus en cours d'exécution sur votre système.
Pour tuer un processus, il vous suffit d'appuyer sur la touche "k" et d'entrer l'ID de processus de l'application que vous souhaitez tuer.
Plus tôt dans cette section, la commande kill et il vous a demandé de rechercher le processus à l'aide de la commande ps, puis de le tuer à l'aide de la commande kill. Ce n'est pas l'option la plus simple par tous les moyens.
D'une part, la commande ps renvoie des charges d'informations inutiles. Tout ce que vous vouliez, c'était l'identifiant du processus. Vous pouvez obtenir l'ID de processus plus simplement en exécutant la commande suivante:
pgrep firefox
Le résultat de la commande ci-dessus est simplement l'ID de processus de Firefox. Vous pouvez maintenant exécuter la commande kill comme suit:
tuer
(Remplacer Il est cependant plus facile de simplement fournir le nom du programme à pkill comme suit: Enfin, vous pouvez utiliser un outil graphique tel que celui fourni avec Ubuntu, appelé "Moniteur système". Pour exécuter "Moniteur système", appuyez sur la super clé (touche Windows sur la plupart des ordinateurs) et tapez "sysmon" dans la barre de recherche. Lorsque l'icône du moniteur système apparaît, cliquez dessus. Le moniteur système affiche une liste de processus. Pour terminer un programme proprement, sélectionnez-le et appuyez sur la touche de fin en bas de l'écran (ou appuyez sur CTRL et E). Si cela ne fonctionne pas, faites un clic droit et choisissez "Kill" ou appuyez sur CTRL et K sur le processus que vous souhaitez tuer.pkill firefox