Какие-либо файлы загружаются, когда терминальный сеанс завершается?

Проверьте свои системные журналы. Который регистрируется для проверки на, зависят от установки; на 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 $?

Если Вы хотите зарегистрировать больше информации о процессах и как они умирают (и как они рождаются, но здесь Вы уже знаете), посмотрите, там журнал прошлых обсуждений, которые теперь закрываются?

2
13.12.2012, 01:38
2 ответа

~/.bash_logout выполняемый ударом, когда оболочка входа в систему выходит. но можно также получить IP-адрес, и дата детализирует использование lastlog , Ваша попытка это?

~/.bash_logout , но это не будет работать когда сессия kill -9 $$ или может быть близким сильно

1
27.01.2020, 22:14
  • 1
    Нет никакого пути вокруг kill -9, или материал как "кто-то просто отключил электроснабжение", но нормальный выход из системы не сделает этого. +1 –  goldilocks 12.12.2012, 21:04
  • 2
    , который я просто гуглил вокруг об этом и также остерегаюсь того закрытия X эмуляторов терминала, отправляет SIGHUP в оболочку, и ~/.bash_logout не будет работать :( Таким образом, это - SIGTERM только событие (например, Вы используете exit). –  goldilocks 12.12.2012, 21:08
  • 3
    я использую echo "${SSH_CLIENT%% *}" уже получить IP-адрес. Все соединения сделаны через SSH к офшорному серверу. Так отключение электроснабжения не является проблемой. –  Stephen S 12.12.2012, 21:23

Все оболочки имеют способ выполнить некоторый код, когда оболочка выходит: прерывание. “Прерывание” является словом оболочки для обработчика сигналов. Можно поставить капкан на сигнал путем списка его имени (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-адрес) для всех прошлых и текущих сессий начиная с последнего вращения журнала.

1
27.01.2020, 22:14
  • 1
    Как я сказал прежде, я не знал, в последний раз существовал. Я не являюсь очень сведущим в оболочке/ударе. Таким образом как сказанный derobert, это похоже, я изобретал велосипед, не зная, что колесо уже существовало. –  Stephen S 13.12.2012, 05:48

Теги

Похожие вопросы