GNU/Linux >> Tutoriels Linux >  >> Linux

Comment tuer les processus sous Linux en utilisant kill, killall et pkill

Qu'est-ce qu'un processus

Un processus, également appelé tâche, est la forme d'exécution d'un programme. Les programmes sont stockés sur disque et les processus s'exécutent en mémoire. Les processus ont une relation parent/enfant. Un processus peut engendrer un ou plusieurs enfants. Plusieurs processus peuvent s'exécuter en parallèle.

Répertorier les processus système

La commande process status (ps) répertorie les processus associés à votre shell.

# ps [options]

Pour chaque processus, la commande ps affiche le PID , l'identifiant du terminal (TTY ), le temps d'exécution cumulé (TIME ) et le nom de la commande (CMD ). Par exemple, répertoriez les processus en cours d'exécution sur le système à l'aide de la commande ps.

# ps
  PID TTY          TIME CMD
 1442 pts/1    00:00:00 sudo
 1448 pts/1    00:00:00 su
 1449 pts/1    00:00:00 bash
 1666 pts/1    00:00:00 ps

La commande ps comporte plusieurs options que vous pouvez utiliser pour afficher des informations supplémentaires sur le processus.

  • -a :Imprime des informations sur tous les processus les plus fréquemment demandés, à l'exception des chefs de groupe de processus et des processus non associés à un terminal
  • -e  :Imprime des informations sur chaque processus en cours d'exécution
  • -f :Génère une liste complète
  • -l :Génère une longue liste
  • Format -o :Écrit des informations selon la spécification de format donnée dans un format. Plusieurs options -o peuvent être spécifiées. La spécification de format est interprétée comme la concaténation séparée par des espaces de tous les arguments d'option de format.

Liste de tous les processus

Par exemple, utilisez le 'ps -ef ' pour répertorier tous les processus actuellement programmés pour s'exécuter sur le système.

# ps -ef | more

Ici,

  • UID :Le nom d'utilisateur du propriétaire du processus
  • PID  :Le numéro d'identification unique du processus
  • PPID :Le numéro d'identification du processus parent du processus
  • STIME :L'heure à laquelle le processus a commencé (hh:mm:ss)
  • ATS :Le terminal de contrôle du processus. Notez que les processus système (démons) affichent un point d'interrogation (?), indiquant que le processus a démarré sans l'utilisation d'un terminal.
  • HEURE :Le temps d'exécution cumulé du processus
  • CMD  :Le nom de la commande, les options et les arguments

Terminer un processus

Il peut arriver que vous deviez mettre fin à un processus indésirable. Un processus peut être entré dans une boucle sans fin ou s'être bloqué. Vous pouvez tuer ou arrêter n'importe quel processus que vous possédez. Vous pouvez utiliser les deux commandes suivantes pour terminer un ou plusieurs processus :
– kill
– pkill

Les commandes kill et pkill envoient des signaux aux processus leur ordonnant de se terminer. Chaque signal a un numéro, un nom et un événement associé. Vous trouverez ci-dessous certains des signaux les plus couramment utilisés avec leurs fonctionnalités.

Nombre Nom Description
1 SIGHUP Recharger le fichier de configuration
2 SIGINT Interruption par le clavier (ctrl+c)
9 SIGKILL tuer le processus
15 SIGTERM Terminer le processus immédiatement. (Terminer un processus de manière contrôlée afin que le nettoyage soit possible)
18 SIGCON Continuer le processus arrêté avec STOP
19 ARRÊTER Arrêter le processus
Remarque  :Cependant, il existe des processus qui ne doivent pas être terminés, tels que init traiter. La suppression de tels processus peut entraîner un plantage du système. Un superutilisateur peut tuer n'importe quel processus du système.

Terminer un processus à l'aide de la commande kill

Vous pouvez terminer n'importe quel processus en envoyant le signal approprié au processus concerné. La commande kill envoie le signal 15, le signal de terminaison, par défaut. Ce signal amène le processus à se terminer de manière ordonnée. La commande kill envoie un signal de terminaison à un ou plusieurs processus. La syntaxe pour utiliser la commande kill est la suivante :

# kill [-signal] PIDs
Remarque :La commande kill ne termine que les processus que vous possédez. L'utilisateur root peut utiliser la commande kill sur n'importe quel processus.

Vous devez connaître le PID du processus avant de pouvoir le terminer. Vous pouvez utiliser la commande ps ou pgrep pour localiser le PID du processus. De plus, vous pouvez mettre fin à plusieurs processus en même temps en saisissant plusieurs PID sur une seule ligne de commande. Voyons un exemple de commande kill. Nous tuerions le processus "sommeil 400" comme indiqué ci-dessous.

# ps -ef | grep sleep
root      1337  1218  0 07:33 pts/0    00:00:00 sleep 400
# kill -9 1337
# ps -ef | grep sleep
#

Terminer un processus à l'aide de la commande pkill ou killall

Vous pouvez également utiliser la commande pkill ou killall pour envoyer un signal de terminaison aux processus.

# pkill [-options] PIDs

ou

# killall [-options] PIDs

La commande pkill/killall vous demande de spécifier le nom au lieu du PID du processus. Par exemple, utilisez la commande pkill pour terminer le processus dtmail.

# pkill dtmail 
# pgrep -l mail
#

Arrêt forcé d'un processus :signal 9

Certains processus ignorent le signal par défaut 15 envoyé par la commande kill. Si un processus ne répond pas au signal 15, vous pouvez le forcer à se terminer en utilisant le signal 9 avec la commande kill ou pkill.

# kill -9 PID

ou

# pkill -9 process_name
Remarque :L'envoi du signal 15 ne tue pas nécessairement un processus gracieusement. Seulement si le signal est capté par le processus, il se nettoie dans l'ordre et meurt. Sinon, il meurt tout simplement.


Linux
  1. Comment tuer un processus zombie sous Linux

  2. Comment trouver et tuer le processus Zombie sous Linux

  3. Que sont les processus zombies et comment trouver et tuer les processus zombies ?

  4. Comment tuer les processus en cours d'exécution sous Linux

  5. Comment tuer un processus sous Linux en utilisant la commande ?

Comment trouver et tuer les processus en cours d'exécution sous Linux

Comment localiser et tuer un processus avec un terminal Linux

Comment tuer un processus sous Linux

Maîtriser le processus Linux Kill à l'aide de ps, pgrep, pkill et plus

Comment tuer les processus zombies dans Ubuntu

4 façons de tuer un processus - kill, killall, pkill, xkill