accueil > Gestion des processus > kill

Guide de la commande kill : Terminer des processus

La commande `kill` est utilisée pour envoyer un signal à un processus en cours d'exécution sur un système Linux afin de le contrôler. Bien qu'elle soit principalement utilisée pour terminer un processus (kill), il est également possible d'envoyer d'autres types de signaux pour modifier le comportement du processus. Avec ce guide, apprenez les bases de l'utilisation de la commande `kill` et comment tirer parti des différents signaux.

Aperçu de kill

La commande `kill` envoie un signal à un processus ayant un identifiant de processus (PID) spécifique. Le signal le plus courant est celui qui demande à un processus de se terminer, mais selon le type de signal, le processus peut réagir différemment. Par exemple, il peut être suspendu ou invité à recharger son fichier de configuration.

Importance de l'identifiant de processus (PID)

La commande `kill` prend principalement le PID comme argument. Il est donc crucial de connaître le PID exact du processus que vous souhaitez contrôler. Vous pouvez vérifier le PID d'un processus en utilisant les commandes `ps` ou `top`.

Principales fonctions de kill

  • Terminer un processus: Met fin de force ou normalement à un processus qui n'est plus nécessaire ou qui fonctionne mal.
  • Redémarrer/Recharger un processus: Envoie un signal spécifique pour inciter un processus à relire son fichier de configuration ou à redémarrer.
  • Gestion des ressources système: Met fin à un processus consommant trop de ressources pour assurer la stabilité du système.

Signaux les plus couramment utilisés

Il existe divers signaux, mais les deux suivants sont les plus couramment utilisés :

Signaux principaux

  • **SIGTERM (15, par défaut)**: Envoie une demande douce au processus pour 'terminer'. Lorsque le processus reçoit ce signal, il peut effectuer des opérations de nettoyage et se terminer. Dans la plupart des cas, ce signal est essayé en premier.
  • **SIGKILL (9)**: Termine immédiatement le processus de force. Le processus ne peut pas ignorer ou intercepter ce signal et est terminé de force sans avoir la chance d'effectuer des opérations de nettoyage. Doit être utilisé en dernier recours.

Options principales de la commande kill

La commande `kill` utilise un numéro de signal ou un nom de signal pour contrôler un processus. Lorsque vous envoyez un signal à un processus spécifique, vous devez spécifier précisément le PID de ce processus.

1. Utilisation de base

2. Signaux utiles

3. Vérifier la liste de tous les signaux

Commande générée :

Essayez de combiner les commandes.

Description:

`kill` Exécute la commande.

Essayez d'exécuter virtuellement les commandes avec l'IA en combinant les options ci-dessus.

Commande killall (Terminer les processus par nom)

La commande `killall` envoie un signal à tous les processus correspondant à un nom plutôt qu'à un PID, contrairement à `kill`. Cela est très pratique pour terminer toutes les instances d'une application spécifique.

Terminaison normale des processus par nom

killall nginx

Envoie le signal SIGTERM à tous les processus nommés `nginx` pour demander une terminaison normale.

Terminaison forcée des processus par nom

killall -9 firefox

Envoie le signal SIGKILL à tous les processus nommés `firefox` pour les terminer immédiatement.

Terminer seulement les processus d'un utilisateur spécifique

killall -u $(whoami) chrome

Termine uniquement le processus `chrome` de l'utilisateur actuel. N'affecte pas les processus `chrome` d'autres utilisateurs.

Commande pkill (Terminer des processus par motif)

La commande `pkill` est similaire à `killall`, mais elle utilise une expression régulière pour trouver des processus par leur nom, offrant ainsi plus de flexibilité. Cela est utile pour trouver des processus par un nom partiel ou pour terminer plusieurs processus connexes à la fois.

Terminaison normale des processus par motif

pkill http

Envoie le signal SIGTERM à tous les processus contenant 'http' dans leur nom. (Ex : `httpd`, `apache2`, etc.)

Terminaison forcée des processus par motif

pkill -9 mysql

Envoie le signal SIGKILL à tous les processus contenant 'mysql' dans leur nom pour les terminer de force.

Terminer les processus appartenant à un utilisateur spécifique

pkill -u www-data php-fpm

Termine tous les processus 'php-fpm' appartenant à l'utilisateur `www-data`.

Exemples d'utilisation

Découvrez comment gérer efficacement les processus de votre système à travers divers exemples d'utilisation des commandes `kill`, `killall`, et `pkill`.

Terminer un processus avec un identifiant de processus (PID) spécifique

kill 12345

Tente de terminer normalement le processus avec le PID `12345` en lui envoyant le signal SIGTERM.

Terminaison forcée d'un processus (utilisation du PID)

kill -9 54321

Lorsque le processus avec le PID `54321` ne répond pas, il est terminé de force avec le signal `SIGKILL`.

Recharger le processus Nginx (utilisation de SIGHUP)

sudo kill -1 $(cat /run/nginx.pid)

Trouve le processus maître de Nginx (PID) et envoie le signal `SIGHUP` pour lui demander de relire son fichier de configuration. (Le PID du processus Nginx peut être vérifié avec `ps aux | grep nginx`)

Terminer tous les navigateurs Chrome par leur nom

killall chrome

Termine normalement tous les processus de navigateur Chrome en cours d'exécution. (Les fenêtres se fermeront et les données non enregistrées peuvent être perdues)

Terminer tous les processus de l'utilisateur 'johndoe'

sudo killall -9 -u johndoe

Termine de force tous les processus exécutés par l'utilisateur `johndoe`. (Nécessite des droits administratifs)

Terminer un processus consommant beaucoup de CPU (exemple)

# 1. Vérifiez le PID avec top ou htop (Ex : 12345)
# 2. Terminez le PID correspondant
kill 12345

Ceci est un scénario courant où l'on vérifie le PID d'un processus consommant beaucoup de CPU avec `top` ou `htop` avant de le terminer.


Commandes de la même catégorie