Comment tuer des processus à l'aide de Linux
De temps en temps, un programme se bloque, auquel cas vous avez besoin d'une méthode pour le tuer. Linux propose plusieurs approches pour forcer les programmes à partir du shell.
Comment utiliser la commande « killall »
Les tuer tous La commande tue tous les processus par nom. Cela signifie que si vous avez trois versions du même programme en cours d'exécution, la commande killall tue les trois.
Par exemple, ouvrez un petit programme tel qu'une visionneuse d'images. Ouvrez maintenant une autre copie de la même visionneuse d'images. Cet exemple utilise Xviewer, qui est un clone de Oeil De Gnome.
Ouvrez un terminal et tapez la commande suivante:
killall xviewer
Les deux instances du programme se ferment.
Tuer le processus exact
La commande killall peut produire des résultats étranges. Si vous avez un nom de commande de plus de 15 caractères, la commande killall ne fonctionne que sur les 15 premiers caractères. Si, par conséquent, vous avez deux programmes qui partagent les mêmes 15 premiers caractères, les deux programmes sont annulés même si vous n'avez voulu en tuer qu'un.
Pour contourner ce problème, vous pouvez spécifier le commutateur suivant, qui ne tue que les fichiers correspondant au nom exact.
killall -e
Ignorer la casse lors de la suppression de programmes
Pour vous assurer que la commande killall ignore la casse du nom de programme que vous fournissez, utilisez la commande suivante:
killall -je
killall --ignore-case
Tuez tous les programmes du même groupe
Lorsque vous exécutez une commande telle que la suivante, elle crée deux processus:
ps-ef | moins
Une commande est pour le ps -ef partie, qui répertorie tous les processus en cours d'exécution sur votre système, et la sortie est redirigée vers le moins de commande. Les deux programmes appartiennent au même groupe, qui est frapper.
Pour tuer les deux programmes à la fois, exécutez la commande suivante:
killall -g
Par exemple, pour supprimer toutes les commandes exécutées dans un shell bash, exécutez la commande suivante:
killall -g bash
Pour répertorier tous les groupes en cours d'exécution, exécutez la commande suivante:
ps -g
Obtenez une confirmation avant de tuer des programmes
De toute évidence, la commande killall est une commande puissante et vous ne voulez pas tuer accidentellement les mauvais processus.
Lorsque vous utilisez le commutateur suivant, il vous est demandé si vous êtes sûr avant que chaque processus ne soit tué.
killall -i
Tuer les processus qui s'exécutent depuis un certain temps
Imaginez que vous exécutiez un programme et que cela prend beaucoup plus de temps que vous ne l'auriez espéré.
Vous pouvez tuer la commande de la manière suivante:
killall -o h4
Les h dans la commande ci-dessus signifie heures - cette commande tue les processus en cours d'exécution pendant quatre heures ou plus.
Spécifiez l'un des jalons suivants:
- s: secondes
- m: minutes
- h: les heures
- ré: jours
- w: semaines
- M: mois
- oui: années
Alternativement, pour tuer les commandes qui viennent juste de commencer à s'exécuter, utilisez le commutateur suivant:
killall -y h4
Cette fois, la commande killall tue 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 n'est pas en cours d'exécution, vous recevez l'erreur suivante:
nom du programme: aucun processus trouvé
Si vous ne voulez pas être informé 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, spécifiez 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
Pour tuer un programme appartenant à un utilisateur spécifique, utilisez le -u changer:
killall -u
Omettez le nom du programme pour terminer tous les processus de cet utilisateur.
Attendez que killall se termine
Par défaut, killall retourne au terminal lorsque vous l'exécutez, mais vous pouvez forcer killall à attendre que tous les processus spécifiés aient été fermés avant de revenir à la fenêtre du terminal.
Exécutez la commande suivante:
killall -w
Si le programme ne meurt jamais, alors killall continuera également à vivre.