Здається, немає можливості зафіксувати ці дані у файлі. Для процесу завантаження є 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
час оновлень також не буде конфліктних конфліктів.