Comment tuer un processus Linux à l’aide de kill, pkill et killall
Sous Linux, l’arrêt d’un processus fait référence à l’arrêt ou à l’arrêt de l’exécution d’un programme en cours d’exécution. Chaque processus en cours d’exécution se voit attribuer un numéro d’identification unique connu sous le nom d’ID de processus (PID), qui aide le système à suivre les processus actuellement actifs.
Dans cet article, nous allons découvrir le processus d’arrêt de Linux et comment trouver et terminer un processus à l’aide de différents outils et commandes sous Linux.
Qu’est-ce que le processus Linux
En termes simples, un processus est comme un programme qui s’exécute actuellement sur un système, et chaque processus a son propre numéro d’identification spécial (PID). Cependant, il arrive qu’un programme ou un processus en cours d’exécution se comporte mal, cesse de répondre ou utilise trop de ressources système.
Lorsque cela se produit, nous devons arrêter ou « tuer » le processus et c’est là que la commande kill est utile.
Qu’est-ce que Kill Command
La commande « kill » est un utilitaire crucial qui permet aux utilisateurs d’envoyer des signaux (arrêt ou terminaison) aux processus en cours d’exécution, leur demandant de quitter gracieusement ou d’arrêter de force.
La commande kill est utile lorsque vous devez gérer et contrôler les activités de différents programmes sur votre système Linux, tels que :
- Pour arrêter tout processus automatisé.
- Pour arrêter un processus qui a été lancé par accident.
- Pour arrêter un processus qui utilise trop de mémoire.
- Pour arrêter de force tout processus en cours d’exécution sous Linux.
- Pour arrêter l’exécution d’un processus en arrière-plan.
L’utilisation de la commande kill de /usr/bin vous offre des fonctionnalités supplémentaires pour tuer un processus par son nom à l’aide de pkill, qui identifie les processus par leur nom.
Comment trouver l’ID ou le nom du processus
Avant d’arrêter un processus en cours d’exécution, il est essentiel d’identifier son ID de processus (PID) ou son nom à l’aide de la commande ps suivante qui affiche des informations sur tous les processus en cours d’exécution sur le système avec leur PID (ID de processus) et d’autres informations.
$ ps -ef
Si vous souhaitez trouver un nom de processus spécifique PID, vous pouvez utiliser une commande grep qui répertoriera tous les processus en cours d’exécution sur le système et filtrera les résultats pour n’afficher que ceux contenant le terme « mariadb ».
ps -ef | grep mariadb
Vous pouvez également trouver directement le PID d’un processus par son nom à l’aide de la commande pgrep, comme indiqué.
pgrep mariadb
Comment tuer un processus sous Linux
Avant d’arrêter, d’arrêter ou de terminer un processus, pensez aux autorisations. Si vous êtes un utilisateur root, vous pouvez arrêter n’importe quel processus, mais si vous êtes un utilisateur normal, vous devez ajouter un « sudo » avant la commande ou passer à une racine avec « su » pour utiliser la commande terminaison.
La syntaxe courante de la commande kill est la suivante :
kill [signal or option] PID(s)
OR
sudo kill [signal or option] PID(s)
Pour une commande kill, un nom de signal peut être :
Clairement d’après le comportement ci-dessus :
- SIGTERM est le moyen par défaut et le plus sûr de tuer un processus.
- SIGHUP est un moyen moins sûr de tuer un processus que SIGTERM.
- SIGKILL est le moyen le plus dangereux parmi les trois ci-dessus, pour tuer un processus qui termine un processus sans sauvegarde.
Sous Linux, il existe différents signaux que vous pouvez utiliser pour arrêter, terminer ou mettre en pause les processus. Vous pouvez lister tous les signaux d’arrêt disponibles avec leurs noms et numéros correspondants à l’aide de la commande suivante, qui listera
kill -l
Bien qu’il y ait plusieurs signaux disponibles, dans la plupart des cas, nous n’utilisons que SIGKILL (9) et SIGTERM (15).
Pour tuer un processus, nous devons connaître l’ID de processus d’un processus. Un processus est une instance d’un programme. Chaque fois qu’un programme démarre, un PID unique est automatiquement généré pour ce processus.
Chaque processus sous Linux a un pid. Le premier processus qui démarre lorsque le système Linux est démarré est le processus -init, il se voit donc attribuer une valeur de '1' dans la plupart des cas.
Init est le processus maître et ne peut pas être tué de cette façon, ce qui garantit que le processus maître n’est pas tué accidentellement. Init décide et se laisse tuer, où tuer n’est qu’une demande d’arrêt.
Avant d’aller de l’avant et d’exécuter une commande kill, quelques points importants sont à noter :
- Un utilisateur peut tuer tous ses processus.
- Un utilisateur ne peut pas arrêter le processus d’un autre utilisateur.
- Un utilisateur ne peut pas arrêter les processus utilisés par le système.
- Un utilisateur root peut arrêter le processus au niveau du système et le processus de n’importe quel utilisateur.
Pour arrêter le PID du processus mariadb, utilisez la commande kill comme indiqué.
kill -9 3383
La commande ci-dessus tuera le processus ayant pid=3383, où PID est une valeur numérique du processus.
Une autre façon d’exécuter la même fonction peut être réécrite comme.
kill -SIGTERM 3383
De même, 'kill -9 PID’est similaire à 'kill -SIGKILL PID’et vice-versa.
Pour confirmer que le processus s’est terminé, vous pouvez à nouveau utiliser la commande ps.
ps -ef | grep mariadb
Comment tuer plusieurs processus sous Linux
Pour arrêter plusieurs processus sous Linux à l’aide de leurs ID de processus (PID), vous pouvez utiliser la commande kill en combinaison avec les numéros PID appropriés.
Tout d’abord, identifiez les PID des processus que vous souhaitez terminer à l’aide de la commande ps ou pgrep.
ps aux | grep apache2
OR
pgrep apache2
Une fois que vous avez les PID, utilisez la commande kill pour les terminer.
kill -9 PID1 PID2 PID3
Comment tuer un processus sous Linux en utilisant le nom du processus
Pour terminer un processus à l’aide du nom du processus, nous allons utiliser la commande pkill, qui est une version de la commande kill qui vous permet de mentionner le nom du processus ou un modèle pour localiser un processus.
Vous devez être conscient du nom du processus, avant de tuer, et entrer un mauvais nom de processus peut vous en l’air.
pkill mysqld
Que se passe-t-il si un processus a trop d’instances et plusieurs processus enfants, nous avons une commande 'killall' qui prend le nom du processus comme argument à la place du numéro de processus.
Comment tuer un processus sous Linux à l’aide de la commande killall
La principale distinction entre killall et kill est que killall peut terminer un processus par son nom, tandis que la commande kill repose sur l’ID de processus (pid).
Pour tuer toutes les instances mysql avec les processus enfants, utilisez la commande comme suit.
killall mysqld
OR
pkill mysqld
Vous pouvez toujours vérifier l’état du processus, qu’il soit en cours d’exécution ou non, à l’aide de l’une des commandes ci-dessous.
systemctl status mysql
pgrep mysql
ps -aux | grep mysql
Les outils de surveillance des systèmes graphiques Linux tels que htop ou gnome-system-monitor fournissent une interface conviviale pour trouver et tuer les processus.
Conclusion
C’est tout pour l’instant de ma part. Je serai bientôt de retour avec un autre sujet intéressant et informatif. D’ici là, restez à l’écoute et connecté à Tecmint, et prenez soin de votre santé. N’oubliez pas de partager vos précieux commentaires dans la section des commentaires.




