FreeToGenerate.com

Le signal 10 est SIGUSR1 sur x86 et SIGBUS presque partout ailleurs. Un numéro écrit en dur n’échoue pas sur la mauvaise machine — il fait autre chose.

Que veut dire ce numéro ?

x86, ARM et la plupart des Linux
SIGUSR1
Alpha et SPARC
SIGBUS
MIPS
SIGBUS
PA-RISC
SIGBUS
macOS
SIGBUS

Ce numéro ne veut pas dire la même chose partout. Du code qui l’écrit en dur n’échoue pas bruyamment sur la mauvaise machine — il fait autre chose.

Les numéros ne sont pas arbitraires : ils suivent un arbre généalogique

31 des signaux que les deux sources définissent, macOS s’accorde avec Alpha et SPARC 31 · x86, ARM et la plupart des Linux 19

macOS et les architectures Alpha et SPARC descendent tous de BSD, tandis que Linux sur x86 a repris la numérotation de System V. Une colonne du tableau Linux est donc, en pratique, la colonne BSD — et le désaccord entre les deux familles est précisément ce qui rend dangereux d’écrire un numéro en dur.

39 signaux

Le signal n’existe pas du tout sur cette plateforme — ce qui est autre chose que d’y porter un numéro différent.

SIGABRTP1990Core y met fin et écrit un fichier core
x86, ARM et la plupart des Linux
6
Alpha et SPARC
6
MIPS
6
PA-RISC
6
macOS
6

Abort signal from abort(3)

SIGALRMP1990Term met fin au processus
x86, ARM et la plupart des Linux
14
Alpha et SPARC
14
MIPS
14
PA-RISC
14
macOS
14

Timer signal from alarm(2)

SIGBUSP2001Core y met fin et écrit un fichier corenuméro réutilisé
x86, ARM et la plupart des Linux
7
Alpha et SPARC
10
MIPS
10
PA-RISC
10
macOS
10

Bus error (bad memory access)

SIGCHLDP2001Ign ignoré tant que vous ne le traitez pasnuméro réutilisé
x86, ARM et la plupart des Linux
17
Alpha et SPARC
20
MIPS
18
PA-RISC
18
macOS
20

Child stopped, terminated, or continued

SIGCLDIgn ignoré tant que vous ne le traitez pasnuméro réutilisé
x86, ARM et la plupart des Linux
n’existe pas
Alpha et SPARC
n’existe pas
MIPS
18
PA-RISC
n’existe pas
macOS
n’existe pas

A synonym for SIGCHLD

SIGCONTP1990Cont le reprend s’il était suspendunuméro réutilisé
x86, ARM et la plupart des Linux
18
Alpha et SPARC
19
MIPS
25
PA-RISC
26
macOS
19

Continue if stopped

SIGEMTTerm met fin au processusnuméro réutilisé
x86, ARM et la plupart des Linux
n’existe pas
Alpha et SPARC
7
MIPS
7
PA-RISC
n’existe pas
macOS
7

Emulator trap

SIGFPEP1990Core y met fin et écrit un fichier core
x86, ARM et la plupart des Linux
8
Alpha et SPARC
8
MIPS
8
PA-RISC
8
macOS
8

Erroneous arithmetic operation

SIGHUPP1990Term met fin au processus
x86, ARM et la plupart des Linux
1
Alpha et SPARC
1
MIPS
1
PA-RISC
1
macOS
1

Hangup detected on controlling terminal

SIGILLP1990Core y met fin et écrit un fichier core
x86, ARM et la plupart des Linux
4
Alpha et SPARC
4
MIPS
4
PA-RISC
4
macOS
4

Illegal Instruction

SIGINFOnuméro réutilisé
x86, ARM et la plupart des Linux
n’existe pas
Alpha et SPARC
29
MIPS
n’existe pas
PA-RISC
n’existe pas
macOS
29

Alpha et SPARC diffèrent : Alpha 29, SPARC absent

SIGINTP1990Term met fin au processus
x86, ARM et la plupart des Linux
2
Alpha et SPARC
2
MIPS
2
PA-RISC
2
macOS
2

Interrupt from keyboard

SIGIOTerm met fin au processusnuméro réutilisé
x86, ARM et la plupart des Linux
29
Alpha et SPARC
23
MIPS
22
PA-RISC
22
macOS
23

I/O now possible (4.2BSD)

SIGIOTCore y met fin et écrit un fichier core
x86, ARM et la plupart des Linux
6
Alpha et SPARC
6
MIPS
6
PA-RISC
6
macOS
n’existe pas

IOT trap. A synonym for SIGABRT

SIGKILLP1990Term met fin au processus
x86, ARM et la plupart des Linux
9
Alpha et SPARC
9
MIPS
9
PA-RISC
9
macOS
9

Kill signal

SIGLOSTTerm met fin au processusnuméro réutilisé
x86, ARM et la plupart des Linux
n’existe pas
Alpha et SPARC
29
MIPS
n’existe pas
PA-RISC
n’existe pas
macOS
n’existe pas

Alpha et SPARC diffèrent : Alpha absent, SPARC 29

File lock lost (unused)

SIGPIPEP1990Term met fin au processus
x86, ARM et la plupart des Linux
13
Alpha et SPARC
13
MIPS
13
PA-RISC
13
macOS
13

Broken pipe: write to pipe with no

SIGPOLLP2001Term met fin au processusnuméro réutilisé
x86, ARM et la plupart des Linux
n’existe pas
Alpha et SPARC
n’existe pas
MIPS
n’existe pas
PA-RISC
n’existe pas
macOS
7

Pollable event (Sys V);

SIGPROFP2001Term met fin au processusnuméro réutilisé
x86, ARM et la plupart des Linux
27
Alpha et SPARC
27
MIPS
29
PA-RISC
21
macOS
27

Profiling timer expired

SIGPWRTerm met fin au processusnuméro réutilisé
x86, ARM et la plupart des Linux
30
Alpha et SPARC
29
MIPS
19
PA-RISC
19
macOS
n’existe pas

Alpha et SPARC diffèrent : Alpha 29, SPARC absent

Power failure (System V)

SIGQUITP1990Core y met fin et écrit un fichier core
x86, ARM et la plupart des Linux
3
Alpha et SPARC
3
MIPS
3
PA-RISC
3
macOS
3

Quit from keyboard

SIGSEGVP1990Core y met fin et écrit un fichier core
x86, ARM et la plupart des Linux
11
Alpha et SPARC
11
MIPS
11
PA-RISC
11
macOS
11

Invalid memory reference

SIGSTKFLTTerm met fin au processusnuméro réutilisé
x86, ARM et la plupart des Linux
16
Alpha et SPARC
n’existe pas
MIPS
n’existe pas
PA-RISC
7
macOS
n’existe pas

Stack fault on coprocessor (unused)

SIGSTKSZ
x86, ARM et la plupart des Linux
n’existe pas
Alpha et SPARC
n’existe pas
MIPS
n’existe pas
PA-RISC
n’existe pas
macOS
131072
SIGSTOPP1990Stop suspend le processusnuméro réutilisé
x86, ARM et la plupart des Linux
19
Alpha et SPARC
17
MIPS
23
PA-RISC
24
macOS
17

Stop process

SIGSYSP2001Core y met fin et écrit un fichier corenuméro réutilisé
x86, ARM et la plupart des Linux
31
Alpha et SPARC
12
MIPS
12
PA-RISC
31
macOS
12

Bad system call (SVr4);

SIGTERMP1990Term met fin au processus
x86, ARM et la plupart des Linux
15
Alpha et SPARC
15
MIPS
15
PA-RISC
15
macOS
15

Termination signal

SIGTRAPP2001Core y met fin et écrit un fichier core
x86, ARM et la plupart des Linux
5
Alpha et SPARC
5
MIPS
5
PA-RISC
5
macOS
5

Trace/breakpoint trap

SIGTSTPP1990Stop suspend le processusnuméro réutilisé
x86, ARM et la plupart des Linux
20
Alpha et SPARC
18
MIPS
24
PA-RISC
25
macOS
18

Stop typed at terminal

SIGTTINP1990Stop suspend le processusnuméro réutilisé
x86, ARM et la plupart des Linux
21
Alpha et SPARC
21
MIPS
26
PA-RISC
27
macOS
21

Terminal input for background process

SIGTTOUP1990Stop suspend le processusnuméro réutilisé
x86, ARM et la plupart des Linux
22
Alpha et SPARC
22
MIPS
27
PA-RISC
28
macOS
22

Terminal output for background process

SIGUNUSEDCore y met fin et écrit un fichier corenuméro réutilisé
x86, ARM et la plupart des Linux
31
Alpha et SPARC
n’existe pas
MIPS
n’existe pas
PA-RISC
31
macOS
n’existe pas

Synonymous with SIGSYS

SIGURGP2001Ign ignoré tant que vous ne le traitez pasnuméro réutilisé
x86, ARM et la plupart des Linux
23
Alpha et SPARC
16
MIPS
21
PA-RISC
29
macOS
16

Urgent condition on socket (4.2BSD)

SIGUSR1P1990Term met fin au processusnuméro réutilisé
x86, ARM et la plupart des Linux
10
Alpha et SPARC
30
MIPS
16
PA-RISC
16
macOS
30

User-defined signal 1

SIGUSR2P1990Term met fin au processusnuméro réutilisé
x86, ARM et la plupart des Linux
12
Alpha et SPARC
31
MIPS
17
PA-RISC
17
macOS
31

User-defined signal 2

SIGVTALRMP2001Term met fin au processusnuméro réutilisé
x86, ARM et la plupart des Linux
26
Alpha et SPARC
26
MIPS
28
PA-RISC
20
macOS
26

Virtual alarm clock (4.2BSD)

SIGWINCHnuméro réutilisé
x86, ARM et la plupart des Linux
28
Alpha et SPARC
28
MIPS
20
PA-RISC
23
macOS
28
SIGXCPUP2001Core y met fin et écrit un fichier corenuméro réutilisé
x86, ARM et la plupart des Linux
24
Alpha et SPARC
24
MIPS
30
PA-RISC
12
macOS
24

CPU time limit exceeded (4.2BSD);

SIGXFSZP2001Core y met fin et écrit un fichier corenuméro réutilisé
x86, ARM et la plupart des Linux
25
Alpha et SPARC
25
MIPS
31
PA-RISC
30
macOS
25

File size limit exceeded (4.2BSD);

Numéros tirés du manuel signal(7) de Linux et de l’en-tête d’Apple, relevés à la date indiquée. 2026-08-03

Aussi disponible en : English · Español · Português · العربية

Numéros de signaux Linux

Le numéro de chaque signal sur cinq plateformes, la recherche inverse pour un numéro isolé, et la raison pour laquelle les numéros divergent.

Que sont les numéros de signaux ?

Un signal est la façon dont un système Unix interrompt un processus en cours : pour lui demander de s’arrêter, pour lui apprendre qu’un enfant s’est terminé, pour lui signaler qu’il a touché une zone mémoire interdite. Chacun a un nom comme SIGTERM et un petit entier, et kill en envoie un par l’un ou par l’autre. Les noms sont fixés par POSIX. Les numéros, non.

Toute la difficulté est là. POSIX normalise quels signaux existent et ce qu’ils signifient, et laisse la numérotation à l’implémentation — d’où un tableau à cinq colonnes, une par plateforme, avec bon nombre de lignes où elles divergent.

Cette page réunit les 39 signaux du manuel Linux et de l’en-tête d’Apple, avec le numéro que chaque plateforme leur attribue, leur statut POSIX, et l’action par défaut si vous ne les traitez pas. Au-dessus du tableau se trouve la commande qui compte le plus : tapez un numéro isolé et elle vous dit ce qu’il désigne partout.

Comment s’en servir

  1. Commencez par le numéro, si c’est ce que vous avez. Saisissez-le dans la recherche inverse : vous obtenez le signal qu’il désigne sur chaque plateforme, et un avertissement si elles divergent. C’est le sens dans lequel vous laissent une ligne de journal ou un code de sortie.
  2. Cherchez par nom, par numéro ou par description. SIGKILL, kill, 9 et pipe fonctionnent tous, et le nom exact arrive en tête plutôt que d’être enseveli sous tout ce qui contient simplement ces lettres.
  3. Lisez la ligne entière. L’action par défaut vous dit ce qui se passe si votre programme ignore le signal, et « n’existe pas » signifie que le signal est absent de cette plateforme — ce qui n’est pas la même chose qu’y porter un autre numéro.

Pourquoi les numéros divergent, et pourquoi ce n’est pas au hasard

L’exemple célèbre est SIGUSR1. Il vaut 10 sur x86 et ARM, 30 sur Alpha et SPARC, et 16 sur MIPS et PA-RISC — trois numéros pour un seul nom, et tous sous Linux. La divergence n’est pas entre systèmes d’exploitation, mais entre architectures d’un même système.

Formulé ainsi, cela ressemble à un désagrément. Formulé à l’envers, c’est un danger : le même numéro désigne des signaux différents. Dix, c’est SIGUSR1 sur x86 et SIGBUS presque partout ailleurs ; un script ou un bout de code qui écrit 10 en dur n’échoue donc pas bruyamment lorsqu’il tourne là où on ne l’attendait pas. Il envoie une erreur de bus à un processus qui attendait un signal utilisateur, et le processus meurt d’une manière pour laquelle personne n’a écrit de gestionnaire.

Ce qui rassure, c’est que le désaccord a une forme. Sur les 31 signaux que définissent à la fois le manuel Linux et l’en-tête d’Apple, macOS s’accorde avec la colonne Alpha et SPARC sur la totalité, et avec x86 sur 19 seulement. macOS et ces architectures descendent de BSD ; Linux sur x86 a repris la numérotation de System V. Il y a donc en réalité deux familles, et une colonne du tableau Linux est la colonne BSD sous une autre étiquette.

Une poignée de numéros est identique partout, et c’est pourquoi ce sont ceux que l’on retient : 1 est toujours SIGHUP, 2 toujours SIGINT, 9 toujours SIGKILL, 15 toujours SIGTERM. Ces quatre-là peuvent s’écrire en dur sans crainte. Presque aucun autre.

Limites honnêtes

Cinq plateformes ne sont pas toutes les plateformes. Le manuel Linux documente quatre regroupements d’architectures et Apple documente macOS ; les autres BSD, Solaris, AIX et le reste ont leurs propres en-têtes et ne figurent pas ici. Puisque tout l’intérêt de la page est que les numéros varient, traitez une absence comme « inconnu » et non comme « identique » : la conclusion sûre de ce tableau est toujours d’employer le nom.

Le tableau s’arrête aussi avant les signaux temps réel. Ils vont de SIGRTMIN à SIGRTMAX, n’ont pas de noms individuels, et SIGRTMIN lui-même n’est pas une constante : la bibliothèque C se réserve certains des plus bas, si bien que la valeur change d’un système à l’autre et même d’une version de bibliothèque à l’autre. Un numéro de cette plage ne se cherche dans aucun tableau, ce qui est une version renforcée du même avertissement.

Enfin, les numéros de signaux ne sont pas des codes de sortie, même s’ils se rencontrent. Un shell rapporte un processus tué par le signal N sous forme du code de sortie 128 plus N : un code 137 signifie donc le signal 9 sur une plateforme où 9 vaut SIGKILL. Cette arithmétique est une convention du shell et non une partie du signal, et elle hérite du même problème de portabilité.

Les données sont lues dans le manuel signal(7) de Linux et dans l’en-tête xnu d’Apple plutôt que dans un autre tableau, et la date de relevé est imprimée sous la liste.

Pourquoi est-ce gratuit ?

Parce que cela ne coûte rien à faire tourner. Le tableau fait partie de la page et la recherche a lieu dans votre navigateur ; rien n’est envoyé et aucun serveur ne voit ce que vous avez cherché.

Le script qui lit les deux sources est conservé à côté des données qu’il produit, et les tests vérifient nommément les numéros ainsi que la mesure de l’arbre généalogique : une mauvaise ligne casse la compilation au lieu d’atteindre la page.