Здається, немає можливості зафіксувати ці дані у файлі. Для процесу завантаження є bootlogdпакет, який створює файл /var/log/boot, але нічого для процесу відключення / перезавантаження. Наскільки я бачу, немає способу ввійти в систему з rsyslogобома, і навіть якщо вони були, є повідомлення, надруковані після того, rsyslogяк зупиняється. Частина мого відключення / перезавантаження - це перезавантажити кореневі файли лише заново та вичислити все інше, після цього вхід у файл, який все ще буде там, при наступному завантаженні практично неможливий.
Найпростіший спосіб перегляду повідомлень - це редагування /etc/init.d/haltта / або /etc/init.d/rebootскриптів для пауз безпосередньо перед фактичним halt/ reboot. Для haltсценарію запустіть команду sudoedit /etc/init.d/halt(або скористайтеся редактором GUI) і знайдіть рядок, який фактично зупиняється. Для мене це рядок:
halt -d -f $netdown $poweroff $hddown
В іншому випадку це має бути в кінці do_stopфункції і єдиний рядок, який викликає haltкоманду. Як тільки ви знайдете рядок, просто вставте новий рядок вище із наступним:
read -p "Press enter to halt" reply
Збережіть файл та вийдіть. Тепер при відключенні система буде робити паузу до тих пір, поки ви не натиснете клавішу Enter (або CTRL-C, CTRL-D тощо). Ви можете прочитати повідомлення, надруковані на екрані. Якщо в екрані є більше одного тексту, ви можете побачити прокрутку термінала, натиснувши його Shift+PgUp. Якщо цього все-таки недостатньо, є способи збільшити розмір буфера прокрутки (можливо, інше питання).
Щоб зробити те ж саме, коли система перезавантажиться, вам потрібно відредагувати /etc/init.d/rebootфайл. Команда, що використовується тут, звичайно reboot, на відміну від haltі знову повинна бути в кінці do_stopфункції. Для мене лінія:
reboot -d -f -i
Знову просто вставте наступне у новому рядку вище:
read -p "Press enter to reboot" reply
Зауважте також, що ці файли перелічені як конфілі для initscriptsпакету. Ці оновлення за замовчуванням не будуть клобуватись, коли оновлені пакети, хоча вони спричинить конфлікт.
Більш повним рішенням буде використання наступного сценарію:
#! /bin/sh
### BEGIN INIT INFO
# Provides: pause_hook
# Required-Start:
# Required-Stop: halt reboot
# Default-Start:
# Default-Stop: 0 6
# X-Stop-After: umountroot
# X-Interactive: true
# Short-Description: Pause before halt or reboot
# Description:
### END INIT INFO
do_stop () {
[ -r /etc/pause_hook.conf ] && . /etc/pause_hook.conf
[ "$PAUSE_HOOK_ENABLED" = true ] && read -p "Press enter to continue" reply
}
case "$1" in
start)
# No-op
;;
restart|reload|force-reload)
echo "Error: argument '$1' not supported" >&2
exit 3
;;
stop)
do_stop
;;
*)
echo "Usage: $0 start|stop" >&2
exit 3
;;
esac
Це має бути розміщено /etc/init.d/pause_hookі може бути включено для запуску при відключенні / перезавантаженні за допомогою наступної команди:
sudo update-rc.d pause_hook defaults
Щоб увімкнути фактичний гак, створіть файли, /etc/pause_hook.confщо містять рядок:
PAUSE_HOOK_ENABLED=true
Процес вимкнення / перезавантаження зараз повинен призупинятися перед викликом haltабо rebootскрипту, даючи час для перегляду повідомлень. Його також можна легко відключити / знову ввімкнути, коментуючи / відключення від лінії ввімкнення /etc/pause_hook.conf. Під dpkgчас оновлень також не буде конфліктних конфліктів.