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.
| N° | 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. |
Aucun signal trouvé.