Next: Tratamento dos processos zumbis
Up: Os sinais gerados pelo
Previous: Introdução
Os sinais são identificados pelo sistema por um número inteiro. O
arquivo /usr/include/signal.h contém a lista de sinais
acessíveis ao usuário. Cada sinal é caracterizado por um mneumônico.
Os sinais mais usados nas aplicações em UNIX são listados a
seguir:
- SIGHUP (1) Corte: sinal emitido aos processos
associados a um terminal quando este se ``desconecta''. Ele é também
emitido a cada processo de um grupo quando o chefe termina sua
execução.
- SIGINT (2) Interrupção: sinal emitido aos processos do
terminal quando as teclas de interrupção (INTR ou
CTRLc) do teclado são acionadas.
- SIGQUIT (3)* Abandono: idem com a tecla de abandono
(QUIT ou CTRLD).
- SIGILL (4)* Instrução ilegal: emitido quando uma instrução
ilegal é detectada.
- SIGTRAP (5)* Problemas com trace: emitido após cada
intrução em caso de geração de traces dos processos (utilização da
primitiva ptrace())
- SIGIOT (6)* Problemas de intrução de E/S: emitido em
caso de problemas materiais
- SIGEMT (7) Problemas de intrução emulador: emitido em
caso de erro material dependente da implementação
- SIGFPE (8)* Emitido em caso de erro de cálculo em ponto
flutuante, assim como no caso de um número em ponto flutuante em
formato ilegal. Indica sempre um erro de programação.
- SIGKILL (9) Destruição: arma absoluta para matar os
processos. Não pode ser ignorada, nem interceptada (veja
SIGTERM para uma morte mais suave para processos)
- SIGBUS (10)* Emitido em caso de erro sobre o barramento
- SIGSEGV (11)* Emitido em caso de violação da segmentação:
tentativa de acesso a um dado fora do domínio de endereçamento do
processo.
- SIGSYS (12)* Argumento incorreto de uma chamada de
sistema
- SIGPIPE (13) Escrita sobre um pipe não aberto em
leitura
- SIGALRM (14) Relógio: emitido quando o relógio de um
processo para. O relógio é colocado em funcionamento através da
primitiva alarm()
- SIGTERM (15) Terminação por software: emitido quando o
processo termina de maneira normal. Pode ainda ser utilizado quando
o sistema quer por fim à execução de todos os processos ativos.
- SIGUSR1 (16) Primeiro sinal disponível ao usuário:
utilizado para a comunicação interprocessos.
- SIGUSR2 (17)Primeiro sinal disponível ao usuário:
utilizado para a comunicação interprocessos.
- SIGCLD (18) Morte de um filho: enviado ao pai pela
terminção de um processo filho
- SIGPWR (19) Reativação sobre pane elétrica
Observação: Os sinais marcados por * geram um arquivo
core no disco quando eles não são corretamente tratados.
Para maior portabilidade dos programas que utilizam sinais, pode-se
pensar em aplicar as seguintes regras: evitar os sinais
SISIOT, SIGEMT, SIGBUS e SIGSEGV
que são dependentes da implementação. O mais correto seria
interceptá-los para imprimir uma mensagem relativa a eles, mas não se
deve nunca tentar atribuir uma significação qualquer que seja para a
ocorrência destes sinais.
Next: Tratamento dos processos zumbis
Up: Os sinais gerados pelo
Previous: Introdução
Celso Alberto Saibel Santos
2000-11-14