FreeToGenerate.com

O sinal 10 é SIGUSR1 em x86 e SIGBUS em quase tudo o resto. Um número fixado à mão não falha na máquina errada — faz outra coisa.

O que significa este número?

x86, ARM e a maioria do Linux
SIGUSR1
Alpha e SPARC
SIGBUS
MIPS
SIGBUS
PA-RISC
SIGBUS
macOS
SIGBUS

Este número significa coisas diferentes em plataformas diferentes. Código que o fixa à mão não falha com estrondo na máquina errada — faz outra coisa.

Os números não são arbitrários — seguem uma árvore genealógica

31 dos sinais que ambas as fontes definem, o macOS coincide com Alpha e SPARC 31 · x86, ARM e a maioria do Linux 19

O macOS e as arquiteturas Alpha e SPARC descendem todos do BSD, ao passo que o Linux em x86 adotou a numeração do System V. Portanto uma coluna da tabela do Linux é, na prática, a coluna BSD — e a discordância entre as duas famílias é precisamente o que torna arriscado fixar um número à mão.

39 sinais

O sinal não existe nessa plataforma — o que é um facto diferente de ter outro número.

SIGABRTP1990Core termina-o e escreve um despejo
x86, ARM e a maioria do Linux
6
Alpha e SPARC
6
MIPS
6
PA-RISC
6
macOS
6

Abort signal from abort(3)

SIGALRMP1990Term termina o processo
x86, ARM e a maioria do Linux
14
Alpha e SPARC
14
MIPS
14
PA-RISC
14
macOS
14

Timer signal from alarm(2)

SIGBUSP2001Core termina-o e escreve um despejonúmero reutilizado
x86, ARM e a maioria do Linux
7
Alpha e SPARC
10
MIPS
10
PA-RISC
10
macOS
10

Bus error (bad memory access)

SIGCHLDP2001Ign é ignorado a não ser que o tratenúmero reutilizado
x86, ARM e a maioria do Linux
17
Alpha e SPARC
20
MIPS
18
PA-RISC
18
macOS
20

Child stopped, terminated, or continued

SIGCLDIgn é ignorado a não ser que o tratenúmero reutilizado
x86, ARM e a maioria do Linux
não existe
Alpha e SPARC
não existe
MIPS
18
PA-RISC
não existe
macOS
não existe

A synonym for SIGCHLD

SIGCONTP1990Cont retoma-o se estiver paradonúmero reutilizado
x86, ARM e a maioria do Linux
18
Alpha e SPARC
19
MIPS
25
PA-RISC
26
macOS
19

Continue if stopped

SIGEMTTerm termina o processonúmero reutilizado
x86, ARM e a maioria do Linux
não existe
Alpha e SPARC
7
MIPS
7
PA-RISC
não existe
macOS
7

Emulator trap

SIGFPEP1990Core termina-o e escreve um despejo
x86, ARM e a maioria do Linux
8
Alpha e SPARC
8
MIPS
8
PA-RISC
8
macOS
8

Erroneous arithmetic operation

SIGHUPP1990Term termina o processo
x86, ARM e a maioria do Linux
1
Alpha e SPARC
1
MIPS
1
PA-RISC
1
macOS
1

Hangup detected on controlling terminal

SIGILLP1990Core termina-o e escreve um despejo
x86, ARM e a maioria do Linux
4
Alpha e SPARC
4
MIPS
4
PA-RISC
4
macOS
4

Illegal Instruction

SIGINFOnúmero reutilizado
x86, ARM e a maioria do Linux
não existe
Alpha e SPARC
29
MIPS
não existe
PA-RISC
não existe
macOS
29

Alpha e SPARC diferem: Alpha 29, SPARC absent

SIGINTP1990Term termina o processo
x86, ARM e a maioria do Linux
2
Alpha e SPARC
2
MIPS
2
PA-RISC
2
macOS
2

Interrupt from keyboard

SIGIOTerm termina o processonúmero reutilizado
x86, ARM e a maioria do Linux
29
Alpha e SPARC
23
MIPS
22
PA-RISC
22
macOS
23

I/O now possible (4.2BSD)

SIGIOTCore termina-o e escreve um despejo
x86, ARM e a maioria do Linux
6
Alpha e SPARC
6
MIPS
6
PA-RISC
6
macOS
não existe

IOT trap. A synonym for SIGABRT

SIGKILLP1990Term termina o processo
x86, ARM e a maioria do Linux
9
Alpha e SPARC
9
MIPS
9
PA-RISC
9
macOS
9

Kill signal

SIGLOSTTerm termina o processonúmero reutilizado
x86, ARM e a maioria do Linux
não existe
Alpha e SPARC
29
MIPS
não existe
PA-RISC
não existe
macOS
não existe

Alpha e SPARC diferem: Alpha absent, SPARC 29

File lock lost (unused)

SIGPIPEP1990Term termina o processo
x86, ARM e a maioria do Linux
13
Alpha e SPARC
13
MIPS
13
PA-RISC
13
macOS
13

Broken pipe: write to pipe with no

SIGPOLLP2001Term termina o processonúmero reutilizado
x86, ARM e a maioria do Linux
não existe
Alpha e SPARC
não existe
MIPS
não existe
PA-RISC
não existe
macOS
7

Pollable event (Sys V);

SIGPROFP2001Term termina o processonúmero reutilizado
x86, ARM e a maioria do Linux
27
Alpha e SPARC
27
MIPS
29
PA-RISC
21
macOS
27

Profiling timer expired

SIGPWRTerm termina o processonúmero reutilizado
x86, ARM e a maioria do Linux
30
Alpha e SPARC
29
MIPS
19
PA-RISC
19
macOS
não existe

Alpha e SPARC diferem: Alpha 29, SPARC absent

Power failure (System V)

SIGQUITP1990Core termina-o e escreve um despejo
x86, ARM e a maioria do Linux
3
Alpha e SPARC
3
MIPS
3
PA-RISC
3
macOS
3

Quit from keyboard

SIGSEGVP1990Core termina-o e escreve um despejo
x86, ARM e a maioria do Linux
11
Alpha e SPARC
11
MIPS
11
PA-RISC
11
macOS
11

Invalid memory reference

SIGSTKFLTTerm termina o processonúmero reutilizado
x86, ARM e a maioria do Linux
16
Alpha e SPARC
não existe
MIPS
não existe
PA-RISC
7
macOS
não existe

Stack fault on coprocessor (unused)

SIGSTKSZ
x86, ARM e a maioria do Linux
não existe
Alpha e SPARC
não existe
MIPS
não existe
PA-RISC
não existe
macOS
131072
SIGSTOPP1990Stop suspende o processonúmero reutilizado
x86, ARM e a maioria do Linux
19
Alpha e SPARC
17
MIPS
23
PA-RISC
24
macOS
17

Stop process

SIGSYSP2001Core termina-o e escreve um despejonúmero reutilizado
x86, ARM e a maioria do Linux
31
Alpha e SPARC
12
MIPS
12
PA-RISC
31
macOS
12

Bad system call (SVr4);

SIGTERMP1990Term termina o processo
x86, ARM e a maioria do Linux
15
Alpha e SPARC
15
MIPS
15
PA-RISC
15
macOS
15

Termination signal

SIGTRAPP2001Core termina-o e escreve um despejo
x86, ARM e a maioria do Linux
5
Alpha e SPARC
5
MIPS
5
PA-RISC
5
macOS
5

Trace/breakpoint trap

SIGTSTPP1990Stop suspende o processonúmero reutilizado
x86, ARM e a maioria do Linux
20
Alpha e SPARC
18
MIPS
24
PA-RISC
25
macOS
18

Stop typed at terminal

SIGTTINP1990Stop suspende o processonúmero reutilizado
x86, ARM e a maioria do Linux
21
Alpha e SPARC
21
MIPS
26
PA-RISC
27
macOS
21

Terminal input for background process

SIGTTOUP1990Stop suspende o processonúmero reutilizado
x86, ARM e a maioria do Linux
22
Alpha e SPARC
22
MIPS
27
PA-RISC
28
macOS
22

Terminal output for background process

SIGUNUSEDCore termina-o e escreve um despejonúmero reutilizado
x86, ARM e a maioria do Linux
31
Alpha e SPARC
não existe
MIPS
não existe
PA-RISC
31
macOS
não existe

Synonymous with SIGSYS

SIGURGP2001Ign é ignorado a não ser que o tratenúmero reutilizado
x86, ARM e a maioria do Linux
23
Alpha e SPARC
16
MIPS
21
PA-RISC
29
macOS
16

Urgent condition on socket (4.2BSD)

SIGUSR1P1990Term termina o processonúmero reutilizado
x86, ARM e a maioria do Linux
10
Alpha e SPARC
30
MIPS
16
PA-RISC
16
macOS
30

User-defined signal 1

SIGUSR2P1990Term termina o processonúmero reutilizado
x86, ARM e a maioria do Linux
12
Alpha e SPARC
31
MIPS
17
PA-RISC
17
macOS
31

User-defined signal 2

SIGVTALRMP2001Term termina o processonúmero reutilizado
x86, ARM e a maioria do Linux
26
Alpha e SPARC
26
MIPS
28
PA-RISC
20
macOS
26

Virtual alarm clock (4.2BSD)

SIGWINCHnúmero reutilizado
x86, ARM e a maioria do Linux
28
Alpha e SPARC
28
MIPS
20
PA-RISC
23
macOS
28
SIGXCPUP2001Core termina-o e escreve um despejonúmero reutilizado
x86, ARM e a maioria do Linux
24
Alpha e SPARC
24
MIPS
30
PA-RISC
12
macOS
24

CPU time limit exceeded (4.2BSD);

SIGXFSZP2001Core termina-o e escreve um despejonúmero reutilizado
x86, ARM e a maioria do Linux
25
Alpha e SPARC
25
MIPS
31
PA-RISC
30
macOS
25

File size limit exceeded (4.2BSD);

Números do manual signal(7) do Linux e do cabeçalho da Apple, lidos na data indicada. 2026-08-03

Também disponível em: English · Español · Français · العربية

Números de sinal no Linux

O número de cada sinal em cinco plataformas, a pesquisa inversa para um número solto, e a razão de os números não coincidirem.

O que são os números de sinal?

Um sinal é a maneira de um sistema Unix interromper um processo em execução: para lhe pedir que pare, para lhe dizer que um filho terminou, para o informar de que mexeu em memória onde não devia. Cada um tem um nome como SIGTERM e um inteiro pequeno, e o kill envia um por qualquer dos dois. Os nomes são fixados pelo POSIX. Os números não.

É aí que está toda a dificuldade. O POSIX normaliza que sinais existem e o que significam, e deixa a numeração a cada implementação — portanto a tabela abaixo tem cinco colunas, uma por plataforma, e bastantes linhas onde discordam.

Esta página leva os 39 sinais do manual do Linux e do cabeçalho da Apple, com o número que cada plataforma lhes atribui, se o POSIX os normaliza e o que faz a ação por omissão se não os tratar. Por cima da tabela está o controlo que mais importa: escreva um número solto e ela diz-lhe o que esse número quer dizer em todo o lado.

Como usar

  1. Comece pelo número, se for o que tem. Escreva-o na pesquisa inversa e obtém o sinal que ele nomeia em cada plataforma, e um aviso se discordarem. É nessa direção que o deixa uma linha de registo ou um estado de saída.
  2. Pesquise por nome, número ou descrição. SIGKILL, kill, 9 e pipe funcionam todos, e o nome exato aparece primeiro em vez de ficar enterrado debaixo de tudo o que apenas contém aquelas letras.
  3. Leia a linha toda. A ação por omissão diz-lhe o que acontece se o seu programa ignorar o sinal, e «não existe» quer dizer que o sinal não está lá de todo — um facto diferente de ter outro número.

Porque os números discordam, e porque não é ao acaso

O exemplo famoso é o SIGUSR1. É 10 em x86 e ARM, 30 em Alpha e SPARC, e 16 em MIPS e PA-RISC — três números diferentes para um nome, e todos eles Linux. A divergência não é entre sistemas operativos, é entre arquiteturas do mesmo.

Dito assim soa a chatice. Dito ao contrário é um perigo: o mesmo número quer dizer sinais diferentes. O dez é SIGUSR1 em x86 e SIGBUS em quase todo o resto, portanto um script ou um pedaço de código que fixe o 10 à mão não falha com estrondo quando corre onde não esperava. Manda um erro de barramento a um processo que esperava um sinal de utilizador, e o processo morre de uma maneira para a qual ninguém escreveu um tratador.

O reconfortante é que a discordância tem forma. Dos 31 sinais que tanto o manual do Linux como o cabeçalho da Apple definem, o macOS coincide com a coluna de Alpha e SPARC em todos sem exceção, e com x86 em apenas 19. O macOS e essas arquiteturas descendem do BSD; o Linux em x86 seguiu antes a numeração do System V. Portanto há aqui na verdade duas famílias, e uma coluna da tabela do Linux é a coluna BSD com outro rótulo.

Um punhado de números é igual em todo o lado, e por isso são os que as pessoas decoram: 1 é sempre SIGHUP, 2 sempre SIGINT, 9 sempre SIGKILL, 15 sempre SIGTERM. Esses quatro podem fixar-se à mão sem receio. Quase mais nenhum.

Limites honestos

Cinco plataformas não são todas as plataformas. O manual do Linux documenta quatro agrupamentos de arquiteturas e a Apple documenta o macOS; os outros BSD, o Solaris, o AIX e o resto têm os seus próprios cabeçalhos e não aparecem aqui. Como o sentido inteiro da página é que os números variam, trate uma ausência como «desconhecido» e não como «coincide» — a conclusão segura desta tabela é usar sempre o nome.

A tabela pára também antes dos sinais de tempo real. Vão de SIGRTMIN a SIGRTMAX, não têm nomes individuais, e o próprio SIGRTMIN não é uma constante: a biblioteca de C reserva alguns dos baixos para uso próprio, portanto o valor muda entre sistemas e até entre versões da biblioteca. Um número desse intervalo não se procura em tabela nenhuma, o que é uma versão mais forte do mesmo aviso.

E números de sinal não são códigos de saída, embora se encontrem. Uma shell reporta um processo morto pelo sinal N como estado de saída 128 mais N, portanto um estado 137 quer dizer o sinal 9 numa plataforma onde o 9 é SIGKILL. Essa aritmética é uma convenção da shell e não parte do sinal, e herda o mesmo problema de portabilidade.

Os dados são lidos do manual signal(7) do Linux e do cabeçalho xnu da Apple, não de outra tabela, e a data em que foram lidos está impressa por baixo da lista.

Porque é grátis

Porque não custa nada manter. A tabela faz parte da página e a pesquisa acontece no seu navegador; não se envia nada e nenhum servidor vê o que consultou.

O guião que lê ambas as fontes está guardado ao lado dos dados que produz, e os testes verificam pelo nome os números e a medição da árvore genealógica, portanto uma linha má parte a compilação em vez de chegar à página.