Accueil

Accueil Référence

Signaux POSIX

Liste des signaux POSIX (SIGTERM, SIGKILL, SIGHUP, etc.) avec leur numéro, action par défaut, possibilité d'interception et cas d'usage. Indispensable pour comprendre kill et trap.

⚠️ Signaux POSIX

Les signaux sont le moyen historique de communiquer avec un processus Unix : Ctrl+C envoie SIGINT, `kill` envoie SIGTERM, etc. Cette référence liste les signaux standards POSIX avec leur numéro, action par défaut et possibilité d'interception.

⚠️ SIGKILL (9) et SIGSTOP (19) ne peuvent JAMAIS être interceptés ni ignorés. Préférer SIGTERM (15) qui permet un arrêt propre.

Nom Action Description Cas d'usage
1 SIGHUP Term Hangup détecté sur le terminal contrôlant, ou mort du processus contrôleur. Convention : recharger la configuration sans redémarrer (nginx, sshd).
2 SIGINT Term Interruption depuis le clavier (Ctrl+C). Demande à l'utilisateur d'arrêter le programme. Catchable pour faire un cleanup.
3 SIGQUIT Core Quit depuis le clavier (Ctrl+\). Comme SIGINT mais génère un core dump. Utile pour debug.
6 SIGABRT Core Abort signal (envoyé par abort()). Le programme termine de façon anormale, génère un core dump.
8 SIGFPE Core Erreur arithmétique (division par zéro, overflow). Un calcul a échoué. Souvent un bug du programme.
9 SIGKILL Term Kill (NON-CATCHABLE, non-ignorable). Termine le processus immédiatement. ⚠️ Dernier recours uniquement. Pas de cleanup possible (fichiers non fermés, locks pas libérés).
10 SIGUSR1 Term Signal défini par l'utilisateur n°1. Réservé à l'application : rotation de logs (apache), dump d'état, debug toggle.
11 SIGSEGV Core Segmentation fault (accès mémoire invalide). Bug du programme. Le core dump aide à debug avec gdb.
12 SIGUSR2 Term Signal défini par l'utilisateur n°2. Réservé à l'application : graceful restart (nginx, unicorn), reload partiel.
13 SIGPIPE Term Écriture sur un pipe sans lecteur. Survient quand un programme écrit sur stdout pipé vers un autre qui s'est arrêté (ex: head qui ferme tôt).
14 SIGALRM Term Alarm timer expiré (alarm()). Utilisé pour implémenter des timeouts (sleep, etc.).
15 SIGTERM Term Demande de terminaison polie. Catchable, le programme peut faire un cleanup avant de quitter. Signal par défaut de `kill <pid>` et `systemctl stop`. Préférer toujours SIGTERM avant SIGKILL.
17 SIGCHLD Ign Processus enfant arrêté ou terminé. Le parent doit appeler wait() pour collecter le code de sortie de l'enfant (sinon : zombie).
18 SIGCONT Cont Continue (reprend un processus stoppé). Reprend un processus mis en pause par SIGSTOP ou Ctrl+Z.
19 SIGSTOP Stop Stop signal (NON-CATCHABLE). Met le processus en pause. Comme Ctrl+Z mais non interceptable. Reprendre avec SIGCONT.
20 SIGTSTP Stop Stop depuis le terminal (Ctrl+Z). Met le processus en pause depuis le clavier. Reprendre avec `fg` ou `bg` dans bash.
28 SIGWINCH Ign Changement de taille de la fenêtre du terminal. Envoyé quand on resize le terminal. Permet aux applis (vim, top) de se redessiner.