
Estou usando a seguinte armadilha:
trap OnExit EXIT
E na minha OnExit
função eu gostaria de capturar todas as informações possíveis sobre o que aconteceu para poder gravá-las em um arquivo de log. Gostaria de saber quem, por que, como, quando etc.
Isso é possível?
Responder1
1. quem- como outro usuário não pode enviar sinais para seus processos, é mais provável que seja o usuário proprietário do processo (o usuário root ainda pode, mas não sei como descobrir se o root mata seu processo).
2. por que- talvez algo assim:
echo "Why did you interrupted the process?" && read why && echo $why > log
(Não tenho certeza do que você quer dizer com o porquê).
3. como- como o BASH recebe o mesmo sinal se o usuário pressionar Ctrl + C
ou se enviar uma interrupção via kill
, AFAIK é impossível descobrir como exatamente a interrupção aconteceu.
4. quando- isso é fácil, use o date
comando:
date > log
EDITAR:se você quis dizer determinar o tipo de sinal em "por que" e "como", consulteessePerguntas e respostas sobre StackOverflow.