Le système d'exploitation Linux offre plusieurs façons de mettre fin à un processus du système d'exploitation Linux. La manière évidente d'arrêter un programme est de cliquer sur le bouton X dans le coin supérieur gauche ou droit. Mais il existe une myriade d'autres façons de tuer un processus; nous sommes ici pour discuter des autres moyens efficaces.
Méthodes pour tuer un processus sous Linux
Séquence de contrôle
La deuxième façon évidente de tuer un processus qui vient d'être lancé est de taper Ctrl-C dans la ligne de commande. La séquence de contrôle Ctrl-C est généralement sûre à utiliser même si une certaine perte de données est possible.
La séquence Ctrl-Z suspendra un processus en cours. Il envoie le signal SIGTSP à un processus dont l'action par défaut est de suspendre le processus.
tuer les commandes
Le système d'exploitation Linux est livré avec la commande kill que vous pouvez utiliser pour mettre fin à un processus lorsqu'il ne répond plus ou qu'il consomme trop de ressources. Un processus sous Linux est une instance d'un programme.
Un PID unique est automatiquement généré pour ce processus lorsqu'un programme démarre. Le processus init est le premier processus qui démarre lorsqu'un système Linux est démarré et auquel la valeur "1" est attribuée.
Init est le processus maître et ne peut pas être tué via la commande kill. La commande kill du processus init est simplement une demande d'arrêt du système.
Ce guide vous guidera à travers les étapes et plusieurs façons de mettre fin à un processus en cours d'exécution à l'aide du terminal Linux.
L'utilisateur root dispose de toutes les autorisations nécessaires pour tuer tous les processus. Vous pouvez obtenir un shell root avec la commande su ou ajouter sudo avant la commande et l'exécuter.
Le signal par défaut envoyé par la commande kill
Tuer un processus enverra un message de terminaison au processus spécifié. Les deux principaux types de messages de résiliation incluent :
• SIGTERM – La commande kill enverra un signal SIGTERM par défaut. Il devrait permettre au processus de se terminer par ses procédures d'arrêt normales. C'est une manière plus douce de tenter de mettre fin à un processus et cela peut être bloqué.
• SIGKILL – Il tuera toujours un processus brusquement. Si SIGKILL ne fonctionne pas, le système d'exploitation a échoué. C'est la méthode la plus rapide et la plus efficace pour tuer un processus.
Répertorier les processus en cours d'exécution
La commande top, la commande ps et la commande pidof sont les moyens les plus simples d'afficher les processus en cours d'exécution dans un système Linux.
Syntaxe :
ps -e | grep name-of-process
La capture d'écran ci-dessous montre comment utiliser la commande ps pour vérifier si MySQL est en cours d'exécution sur le système. Cela nous donne le PID du démon MySQL, qui est 1162.
Options courantes à ajouter à la commande ps
• -a :affiche les processus de tous les utilisateurs.
• -u :affiche des informations détaillées sur chaque processus.
• -x :affiche tous les processus contrôlés par des démons.
ps -e
Syntaxe :
top
La commande supérieure vous montrera le PID, l'utilisateur, le nom de la ressource et le nombre de ressources système utilisées par chaque processus. Ceux-ci sont utiles si vous décidez de mettre fin à l'un des processus.
L'utilisation de la commande pgrep est également très efficace pour obtenir l'ID de processus correspondant.
Options communes à ajouter à la commande pgrep.
• -l :répertorie les noms de processus et les PID.
• -n :renvoie le processus le plus récent.
• -o :renvoie le processus le plus ancien.
• -u :recherche les processus qui appartiennent à un utilisateur spécifique.
• -x :trouve un processus qui correspond exactement à un modèle donné.
La commande pidof est utilisée pour trouver l'IP d'un processus si vous connaissez le nom du processus.
Syntaxe :
pidof <options> <program>
Choix :
• -c :renvoie les PID dans un seul répertoire racine.
• -o : il omettra certains PID.
• -s :renvoie un seul PID.
• -x :renvoie les PID de shells qui exécutent des scripts.
Vous pouvez tuer un processus sous Linux par différentes méthodes selon que vous connaissez le PID du processus, le nom du processus ou la durée d'exécution du processus.
commande killall
La commande killall est utilisée pour tuer les processus par leur nom. Il peut tuer plusieurs processus avec une seule commande et envoie un signal SIGTERM par défaut.
Syntaxe :
killall <process>
Options disponibles avec la commande killall :
• -e :Renvoie la correspondance exacte pour le nom du processus.
• -I :La commande ignorera la casse lors de la recherche du nom du processus.
• -i :Elle demandera des informations supplémentaires lors de la suppression d'un processus par nom.
• -u :Il tuera les processus appartenant à un utilisateur spécifié du système.
• -v :Il indiquera si le processus de mise à mort a été exécuté avec succès.
La commande killall peut également terminer des processus dans un système Linux en fonction des temps d'exécution des processus.
• -o :cette option tuera tous les processus pendant une durée supérieure à la durée spécifiée.
• -y :cette option supprimera tous les processus s'exécutant moins que la durée spécifiée.
Exemple :
• killall -o 20m :la commande tuera tous les processus datant de plus de 20 minutes.
• Killall -y 20m :la commande tuera tous les processus en cours d'exécution depuis moins de 15 minutes.
commande kill
La commande kill tuera un processus si vous connaissez l'adresse IP du processus.
Syntaxe :
kill <processID>
La commande kill tue un seul processus avec l'ID de processus donné. La commande enverra un signal SIGTERM pour s'arrêter et attendre que le processus subisse ses procédures d'arrêt de routine.
Tuer la commande -9
La commande kill -9 est utilisée pour mettre fin aux processus ou services qui ne répondent pas.
Syntaxe :
kill -9 <processID>
ou
kill -SIGKILL <processID>
La commande kill -9 enverra un signal SIGKILL pour arrêter immédiatement un processus. La commande kill -9 contournera la routine d'arrêt standard et toutes les données non enregistrées seront perdues.
Les programmes qui ne répondent pas ignoreront la commande kill mais se termineront chaque fois que la commande kill -9 sera émise.
Les autres options de destruction couramment utilisées incluent :
• -1 (HUP) :il s'agit de l'option "raccrocher" et est généralement très sûre.
• -2 (SIGINT) :il s'agit du même signal que Ctrl-C et est considéré comme une alternative sûre pour tuer un programme.
• -15 (-TERM) :il s'agit du signal de fin par défaut et il est généralement très sûr.
Vous pouvez obtenir une liste complète de tous les signaux disponibles en utilisant la commande kill -l.
commande pkill
La commande pkill tuera un processus lorsque vous connaîtrez le nom du processus. Par défaut, pkill enverra le signal SIGTERM pour terminer le processus.
Syntaxe :
pkill <options> <pattern>
options pkill :
• -n :cette commande supprimera les processus les plus récents.
• -o :cette commande supprimera les processus les plus anciens.
• -u :cette commande supprimera les processus en fonction de l'utilisateur sélectionné.
• -x :cette commande tuera les processus qui correspondent à un modèle.
• -signal :envoie un signal spécifié autre que le signal par défaut SIGTERM.
xkill
La commande xkill fermera la connexion d'un serveur aux clients.
xkill <resource>
La commande xkill mettra fin aux processus serveur indésirables.
commande supérieure
La commande top fournit une interface à travers laquelle un utilisateur peut spécifier le processus de résiliation.
Syntaxe :
top
Pour tuer un processus par PID, insérez k depuis l'interface, puis entrez un ID de processus spécifié.
Récapitulatif
• Vous devez disposer des autorisations sudo pour arrêter un processus via la ligne de commande.
• Chaque fois que vous générez un signal à l'aide de la commande kill, le système Linux interrompt le flux d'exécution normal du processus cible.
• Pour trouver un processus en cours d'exécution, vous pouvez utiliser les commandes ps, top, pgrep ou pidof.
• Vous pouvez arrêter un processus par son nom ou son identifiant à l'aide des commandes kilall, pkill, kill, xkill ou top.
• Un processus d'arrêt enverra un signal de terminaison SIGTERM, SIGHUP OU SIGKILL.
• Vous pouvez utiliser le Moniteur système pour arrêter le processus Linux. Il se trouve dans les outils système et propose plusieurs options telles que le processus supérieur, le processus de fin ou l'arrêt du processus.
• La commande kill et ses variantes sont assez simples à comprendre et à utiliser.
Dans ce guide, nous avons mis en évidence différentes façons de tuer des processus sous Linux. Il y a une légère courbe d'apprentissage en termes de liste d'options de signal qu'il offre, ce qui est essentiel pour une bonne administration de Linux. Si vous souhaitez en savoir plus, je vous suggère de consulter leurs pages de manuel respectives.