
Я использую следующую ловушку:
trap OnExit EXIT
И в своей OnExit
функции я хотел бы захватить всю информацию, которую я могу о том, что произошло, чтобы я мог записать ее в файл журнала. Я хотел бы знать, кто, почему, как, когда и т. д.
Возможно ли что-либо из этого?
решение1
1. кто- поскольку другой пользователь не может отправлять сигналы вашим процессам, скорее всего, это будет пользователь-владелец процесса (пользователь root все еще может это делать, но я не знаю способа узнать, убивает ли root ваш процесс).
2. почему- может быть что-то вроде этого:
echo "Why did you interrupted the process?" && read why && echo $why > log
(Я не совсем понимаю, что вы имеете в виду под «почему»).
3. как- поскольку BASH получает один и тот же сигнал, если пользователь нажимает клавишу Ctrl + C
или если он отправляет прерывание через kill
, насколько мне известно, невозможно выяснить, как именно произошло прерывание.
4. когда- это просто, используйте date
команду:
date > log
РЕДАКТИРОВАТЬ:если вы имели в виду определение типа сигнала под «почему» и «как», то см.этотВопросы и ответы на StackOverflow.