Recherche de site Web

Comment tuer un processus Linux à l'aide de Kill, Pkill et Killall


Sous Linux, tuer un processus fait référence à la fin 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 appelé ID de processus (PID), qui aide le système à suivre les processus actuellement actifs.

Dans cet article, nous découvrirons le processus d'arrêt de Linux et comment rechercher et terminer un processus à l'aide de différents outils et commandes sous Linux.

Quel est le processus Linux

En termes simples, un processus est comme un programme qui s’exécute actuellement sur un système, et chaque processus possède son propre numéro d’identification spécial (PID). Cependant, il arrive parfois 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 s'avère utile.

Qu'est-ce que la commande Kill

La commande « kill » est un utilitaire crucial qui permet aux utilisateurs d'envoyer des signaux (arrêter ou terminer) aux processus en cours d'exécution, leur demandant de se fermer en douceur ou de se terminer 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é.
  • Arrêter un processus démarré par accident.
  • Pour arrêter un processus qui utilise trop de mémoire.
  • Pour mettre fin de force à tout processus en cours sous Linux.
  • Pour arrêter un processus exécuté en arrière-plan.

L'utilisation de la commande kill depuis /usr/bin vous offre des fonctionnalités supplémentaires pour tuer un processus par nom de processus à l'aide de pkill, qui identifie les processus par leurs noms.

Comment trouver l'ID ou le nom du processus

Avant de terminer 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 rechercher 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 afficher uniquement ceux contenant le terme « mariadb<. /fort>“.

ps -ef | grep mariadb

Alternativement, vous pouvez 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 de tuer, d'arrêter ou de mettre fin à 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 en root avec « su » pour utiliser la commande de terminaison.

La syntaxe courante de la commande kill est :

kill [signal or option] PID(s)
OR
sudo kill [signal or option] PID(s)

Pour une commande kill, un Nom du signal pourrait ê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 enregistrer.

Sous Linux, il existe différents signaux que vous pouvez utiliser pour arrêter, terminer ou suspendre des processus. Vous pouvez répertorier tous les signaux d'élimination disponibles avec leurs noms et numéros correspondants à l'aide de la commande suivante, qui répertoriera

kill -l

Bien qu'il existe plusieurs signaux disponibles, dans la plupart des cas, nous utilisons uniquement 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 généré automatiquement pour ce processus.

Chaque processus sous Linux a un pid. Le premier processus qui démarre au démarrage du système Linux est le – processus d'initialisation, c'est pourquoi on lui attribue la valeur « 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 ne sera pas tué accidentellement. Init décide et se laisse tuer, où kill n'est qu'une demande d'arrêt.

Avant d'aller de l'avant et d'exécuter une commande kill, quelques points importants à noter :

  • Un utilisateur peut tuer tous ses processus.
  • Un utilisateur ne peut pas tuer le processus d’un autre utilisateur.
  • Un utilisateur ne peut pas tuer les processus que le système utilise.
  • Un utilisateur root peut tuer le processus au niveau du système et le processus de n'importe quel utilisateur.

Pour tuer le processus mariadb PID, 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 sous la forme.

kill -SIGTERM 3383

De même, « kill -9 PID » est similaire à « kill -SIGKILL PID » et vice-versa.

Pour confirmer que le processus est terminé, vous pouvez à nouveau utiliser la commande ps.

ps -ef | grep mariadb

Comment tuer plusieurs processus sous Linux

Pour terminer 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 mettre fin à 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 y mettre fin.

kill -9 PID1 PID2 PID3

Comment tuer un processus sous Linux à l'aide du nom du processus

Pour terminer un processus en utilisant le nom du processus, nous utiliserons la commande pkill, qui est une version de la commande kill qui permet de mentionner le nom du processus ou un modèle pour localiser un processus.

Vous devez connaître le nom du processus avant de le tuer, et entrer un mauvais nom de processus pourrait vous tromper.

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 du 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, alors que la commande kill repose sur l'ID du processus (pid).

Pour tuer toutes les instances MySQL ainsi que les processus enfants, utilisez la commande comme suit.

killall mysqld
OR
pkill mysqld

Vous pouvez toujours vérifier l'état du processus s'il est en cours d'exécution ou non, en utilisant l'une des commandes ci-dessous.

systemctl status mysql
pgrep mysql
ps -aux | grep mysql

Les outils de surveillance des systèmes graphiques Linux comme htop ou gnome-system-monitor fournissent une interface conviviale pour rechercher et tuer des processus.

Conclusion

C'est tout pour moi pour l'instant. Je reviendrai bientôt avec un autre sujet intéressant et instructif. 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 commentaires.