Onde encontrar informações completas sobre um sinal?

Onde encontrar informações completas sobre um sinal?

Quero saber todas as informações sobre o SIGTTINsinal, por exemplo quero saber se o SIGTTINsinal pode ser manipulado ou não.

Essedocumentaçãodiz apenas o seguinte sobre o SIGTTINsinal:

SIGTTIN 21,21,26 Parar entrada do terminal para processo em segundo plano

E digitar man SIGTTINno terminal não retornou nada.


Editar:

O que eu quis dizer não foi quais sinais você pode enviar para um processo, mas sim se o processo que recebe o sinal pode alterar a ação padrão do sinal. Por exemplo: a ação padrão para o SIGTTINsinal é parar o processo, você pode alterar esta ação padrão em seu programa usando a sigaction()função. Agora, alguns sinais não permitem alterar suas ações padrão, e é isso que estou procurando (uma documentação de quais sinais não permitem alterar suas ações padrão).

Responder1

Você pode usar este comando, que geralmente é correto.

kill -l | egrep SIGTTIN

Você também pode escrever um script PERL rápido para interceptar SIGTTIN + e executá-lo em segundo plano + gerar uma mensagem de diagnóstico simples se seu manipulador SIGTTIN for executado.

Responder2

Eu não acho que você possa alterar a ação padrão de um sinal, assim como ignorá-lo completamente ou instalar um manipulador de sinal.sigaction(2)diz:

sa_handlerespecifica a ação a ser associada ao signum e pode ser SIG_DFLa ação padrão, SIG_IGNpara ignorar este sinal ou um ponteiro para uma função de manipulação de sinal. Esta função recebe o número do sinal como único argumento.

Se você quiser alterar a ação de algum sinal para uma das outras ações padrão, você pode gerar outro sinal que faça o que você deseja (obter um core dump ou interromper o processo) ou simplesmente sair (para encerrar o processo). ).

SIGKILLe SIGSTOPsão os dois sinais que você não pode capturar ou bloquear. sigaction(2):

sinalespecifica o sinal e pode ser qualquer sinal válido, exceto SIGKILLe SIGSTOP.

esignal(7):

Os sinais SIGKILLe SIGSTOPnão podem ser capturados, bloqueados ou ignorados.

Entretanto, ignorar sinais provenientes de falhas reais (acessos inválidos à memória, instruções inválidas) pode não deixar o processo em um estado muito estável.

informação relacionada