Проверьте свои системные журналы. Который регистрируется для проверки на, зависят от установки; на Debian с установкой по умолчанию Вы добираетесь:
/var/log/auth.log
, уведомления, от когда задание крона, запущенное и законченное, потому что задание включило сессию PAM;/var/log/syslog
, уведомление это grandchild #32283 failed with exit status 1
./var/log/kern.log
если Ваш процесс был завершен уничтожителем OOM.Вы получите электронную почту от крона, если Ваше задание крона произведет вывод на своем стандартном выводе или стандартной погрешности (если Ваша система доставки местной почты не настраивается правильно). Вы не получите почту, если она бесшумно возвратит ненулевое состояние (который включает случай того, чтобы быть уничтоженным сигналом). Если Вы хотите уведомление, располагаете обертку оболочки, это является шумным в случае ошибки, например.
42 1 * * * /path/to/real/job || echo $?
Если Вы хотите зарегистрировать больше информации о процессах и как они умирают (и как они рождаются, но здесь Вы уже знаете), посмотрите, там журнал прошлых обсуждений, которые теперь закрываются?
~/.bash_logout
выполняемый ударом, когда оболочка входа в систему выходит. но можно также получить IP-адрес, и дата детализирует использование lastlog
, Ваша попытка это?
~/.bash_logout
, но это не будет работать когда сессия kill -9 $$
или может быть близким сильно
Все оболочки имеют способ выполнить некоторый код, когда оболочка выходит: прерывание. “Прерывание” является словом оболочки для обработчика сигналов. Можно поставить капкан на сигнал путем списка его имени (INT
, HUP
, …) или его число или использование специальное значение 0
или EXIT
поскольку, когда оболочка обычно выходит (путем достижения конца входа или если exit
был назван).
trap 'echo "$IP_ADDRESS logged out at $(date)" >>"$LOG_FILE"' EXIT HUP INT TERM
Вы не можете захватить kill -KILL
или сбои питания.
Я сомневаюсь, что то, что Вы делаете, на самом деле полезно. Эта информация уже зарегистрирована в системных журналах. Это еще более надежно там, потому что Вы получаете запись для kill -KILL
также. Команда last
показывает дату начала, дата окончания и источник (терминальный или IP-адрес) для всех прошлых и текущих сессий начиная с последнего вращения журнала.
kill -9
, или материал как "кто-то просто отключил электроснабжение", но нормальный выход из системы не сделает этого. +1 – goldilocks 12.12.2012, 21:04~/.bash_logout
не будет работать :( Таким образом, это - SIGTERM только событие (например, Вы используетеexit
). – goldilocks 12.12.2012, 21:08echo "${SSH_CLIENT%% *}"
уже получить IP-адрес. Все соединения сделаны через SSH к офшорному серверу. Так отключение электроснабжения не является проблемой. – Stephen S 12.12.2012, 21:23