Estou desenvolvendo um aplicativo e gostaria que ele imprimisse algumas estatísticas de tempo de execução no console sob demanda. kill
e sinais vieram à minha mente imediatamente.
Ler os sinais do Unix no Wiki SIGINFO
parece ser o caminho a seguir, porque:
- Destina- se a esses fins
- Não encerra o processo se o manipulador de sinal não estiver implementado (ao contrário de
SIGUSRx
- veja aqui )
No entanto, inspecionando a saída de kill -l
, parece que meu servidor não possui esse sinal implementado.
Minhas perguntas são:
- Por que está
SIGINFO
faltando no meu sistema? Está ausente em todos os sistemas GNU Linux? - Existe uma maneira fácil (ou seja, sem recompilação do kernel / glibc) para ativar esse sinal? Se não, qual seria o caminho mais difícil?
- Que sinal alternativo eu poderia usar para meus propósitos que não causariam efeitos colaterais se não fossem tratados pelo processo de destino? (Eu já presumo que não, pois não encontrei nenhum outro sinal adequado no manual da glibc )
Metainfo do Linux:
Linux whatever 3.18.2-2-ARCH #1 SMP PREEMPT Fri Jan 9 07:37:51 CET 2015 x86_64 GNU/Linux
Atualização: Ainda estou procurando mais informações sobre por que esse sinal é excluído condicionalmente de outros sistemas que não o BSD (veja os comentários abaixo). O sinal parece ser bastante útil para muitos propósitos, por isso é difícil para mim acreditar que é apenas uma questão de capricho - então qual é o verdadeiro impedimento para esse sinal estar disponível no Linux?
dd
com o do meu Mac. ^T
durante a dd
execução não faz nada na máquina Linux - atualizarei a pergunta de acordo.
^T
aparecem na saída destty -a
?