Quand un programme ne répond plus ou consomme trop de ressources, il faut
l’arrêter. Linux utilise un système de signaux pour communiquer avec les
processus. La commande kill envoie ces signaux — et malgré son nom, elle ne
tue pas toujours : elle demande d’abord poliment.
Ce que vous allez apprendre
Section intitulée « Ce que vous allez apprendre »- Arrêter un processus proprement avec
kill - Forcer l’arrêt avec
kill -9 - Comprendre les signaux SIGTERM, SIGKILL et SIGINT
- Cibler un processus par nom avec
killalletpkill - Reprendre le contrôle d’un terminal bloqué
Les signaux essentiels
Section intitulée « Les signaux essentiels »Un signal est un message envoyé à un processus pour lui demander d’agir. Voici les trois à connaître :
| Signal | Numéro | Effet |
|---|---|---|
| SIGTERM | 15 | Demande d’arrêt propre (le processus peut sauvegarder et se fermer) |
| SIGKILL | 9 | Arrêt immédiat et forcé (le processus ne peut pas l’ignorer) |
| SIGINT | 2 | Interruption (équivalent de Ctrl+C) |
Arrêter un processus avec kill
Section intitulée « Arrêter un processus avec kill »kill envoie un signal à un processus identifié par son PID.
-
Trouvez le PID du processus à arrêter :
Fenêtre de terminal ps aux | grep nom-du-programmeExemple bob 1400 2.5 1.0 245680 98200 pts/0 S+ 10:00 0:03 python3 long-script.pyLe PID est
1400. -
Envoyez SIGTERM (arrêt propre) :
Fenêtre de terminal kill 1400 -
Vérifiez que le processus a disparu :
Fenêtre de terminal ps aux | grep 1400 -
Si le processus est toujours là, forcez avec SIGKILL :
Fenêtre de terminal kill -9 1400
Syntaxe de kill
Section intitulée « Syntaxe de kill »kill PID # Envoie SIGTERM (signal 15) — par défautkill -15 PID # Identique — SIGTERM explicitekill -9 PID # Envoie SIGKILL — arrêt forcékill -SIGTERM PID # Même chose avec le nom du signalCtrl+C : interrompre le processus courant
Section intitulée « Ctrl+C : interrompre le processus courant »Quand un programme tourne en premier plan dans votre terminal :
| Raccourci | Signal envoyé | Effet |
|---|---|---|
| Ctrl+C | SIGINT (2) | Demande d’interruption |
| Ctrl+Z | SIGTSTP (20) | Suspend le processus (ne l’arrête pas) |
| Ctrl+\ | SIGQUIT (3) | Arrêt avec core dump (dernier recours) |
Pour la plupart des situations, Ctrl+C suffit.
killall : arrêter par nom
Section intitulée « killall : arrêter par nom »killall cible tous les processus portant un nom donné :
# Arrêter tous les processus "firefox"killall firefox
# Forcer l'arrêtkillall -9 firefoxpkill : arrêter avec un motif
Section intitulée « pkill : arrêter avec un motif »pkill est plus flexible — il accepte un motif partiel :
# Arrêter les processus dont le nom contient "python"pkill python
# Arrêter les processus d'un utilisateur précispkill -u aliceDifférence entre killall et pkill :
| Commande | Correspondance |
|---|---|
killall firefox | Nom exact : firefox |
pkill fire | Motif partiel : tout ce qui contient fire |
Reprendre le contrôle d’un terminal bloqué
Section intitulée « Reprendre le contrôle d’un terminal bloqué »Quand votre terminal semble bloqué, essayez dans cet ordre :
-
Ctrl+C — interrompt le processus en premier plan
-
Ctrl+Z — suspend le processus (puis
kill %1pour le terminer) -
Si rien ne répond, ouvrez un second terminal et trouvez le PID :
Fenêtre de terminal ps aux | grep votre-commande -
Depuis le second terminal :
Fenêtre de terminal kill PID -
En dernier recours :
Fenêtre de terminal kill -9 PID
Exemples pratiques
Section intitulée « Exemples pratiques »Arrêter un serveur web de développement
Section intitulée « Arrêter un serveur web de développement »# Trouver le PID du serveurps aux | grep "python3 -m http.server"
# Résultat : PID 2100kill 2100Arrêter tous les processus d’un script
Section intitulée « Arrêter tous les processus d’un script »# Plusieurs instances de script.sh tournentpkill -f "script.sh"L’option -f cherche dans la ligne de commande complète, pas seulement le
nom du processus.
Vérifier qu’un processus est bien arrêté
Section intitulée « Vérifier qu’un processus est bien arrêté »# Après killps -p 2100Si le processus a disparu, pas de sortie. Sinon, il est encore actif.
Résumé des commandes
Section intitulée « Résumé des commandes »| Commande | Action |
|---|---|
kill PID | Envoie SIGTERM au processus (arrêt propre) |
kill -9 PID | Envoie SIGKILL (arrêt forcé) |
killall nom | Arrête tous les processus nommés exactement nom |
pkill motif | Arrête les processus correspondant au motif |
pkill -f "commande" | Cherche dans la ligne de commande complète |
Ctrl+C | Interrompt le processus en premier plan |
Ctrl+Z | Suspend le processus en premier plan |
Dépannage
Section intitulée « Dépannage »| Symptôme | Cause probable | Solution |
|---|---|---|
kill PID ne fait rien | Le processus ignore SIGTERM | Attendre quelques secondes, puis kill -9 PID |
kill: (PID) - Opération non permise | Le processus appartient à un autre utilisateur | Utiliser sudo kill PID |
killall ne trouve pas le processus | Le nom ne correspond pas exactement | Utiliser pkill avec un motif partiel |
| Un processus zombie persiste | Le parent n’a pas récupéré le code de sortie | Tuer le processus parent ou attendre |
kill -9 ne fonctionne pas | Processus en état D (attente I/O noyau) — très rare | Résoudre le problème I/O (disque, réseau) ou redémarrer |
À retenir
Section intitulée « À retenir »- SIGTERM (
kill PID) demande un arrêt propre — toujours essayer en premier. - SIGKILL (
kill -9 PID) force l’arrêt — dernier recours. - Ctrl+C envoie SIGINT au processus en premier plan.
killallcible par nom exact,pkillpar motif partiel.- Vérifiez toujours avec
psque le processus a bien disparu.