Как получить сигнал/сообщение/причину завершения в скрипте?

Как получить сигнал/сообщение/причину завершения в скрипте?

Я использую следующую ловушку:

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.

Связанный контент