Bu verileri bir dosyaya kaydetmenin bir yolu yok gibi görünüyor. Önyükleme işlemi için, bootlogd
dosyayı oluşturan paket vardır /var/log/boot
, ancak kapatma / yeniden başlatma işlemi için hiçbir şey yoktur. Görebildiğim kadarıyla, oturum açmanın bir yolu yok rsyslog
ve olsa bile rsyslog
, durdurulduktan sonra yazdırılan mesajlar var . Kapatma / yeniden başlatma işlemimin bir parçası, rootfs'leri salt okunur olarak yeniden takmak ve diğer her şeyi takmaktır, bir sonraki önyüklemede hala orada olacak bir dosyaya giriş yapmanın neredeyse imkansız olması.
İletileri görüntülemenin en kolay yolu, /etc/init.d/halt
ve / veya /etc/init.d/reboot
komut dosyalarını gerçek halt
/ öğesinden hemen önce duraklatmaktır reboot
. İçin halt
komut, komutunu çalıştırın sudoedit /etc/init.d/halt
(ya bir GUI editörü kullanın) gerçek halt yapar hat için ve göz. Benim için bu çizgi:
halt -d -f $netdown $poweroff $hddown
Aksi takdirde, do_stop
fonksiyonun sonunda ve halt
komutu çağıran tek satır olmalıdır . Çizgiyi bulduktan sonra, aşağıdakilere yeni bir satır ekleyin:
read -p "Press enter to halt" reply
Dosyayı kaydet ve çık. Şimdi kapattığınızda, sistem enter tuşuna basana kadar (veya CTRL-C, CTRL-D vb.) Duracaktır. Ekranda yazdırılan mesajları okuyabilirsiniz. Tek bir ekrandan daha fazla metin varsa, tuşuna basarak terminal kaydırma özelliğini görebilirsiniz Shift+PgUp
. Bu hala yeterli değilse, geri kaydırma arabelleğinin boyutunu artırmanın yolları vardır (belki de farklı bir soru olsa da).
Sistem yeniden başlatıldığında da aynısını yapmak için /etc/init.d/reboot
dosyayı düzenlemeniz gerekir . Burada kullanılan komut elbette işlevin reboot
aksine halt
ve yine do_stop
fonksiyonun sonunda olmalıdır . Benim için satır:
reboot -d -f -i
Tekrar aşağıdakileri yukarıdaki yeni bir satıra ekleyin:
read -p "Press enter to reboot" reply
Ayrıca bu dosyaların initscripts
paket için conffiles olarak listelendiğini unutmayın . Bu düzenlemeler, paketler yükseltildiğinde varsayılan olarak hızlandırılmaz, ancak bir çakışmaya neden olurlar.
Daha eksiksiz bir çözüm, aşağıdaki komut dosyasını kullanmak olacaktır:
#! /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
Bu yerleştirilmeli /etc/init.d/pause_hook
ve aşağıdaki komutla kapatma / yeniden başlatma sırasında çalışacak şekilde etkinleştirilmelidir:
sudo update-rc.d pause_hook defaults
Ardından asıl kancayı etkinleştirmek /etc/pause_hook.conf
için satırı içeren dosyaları oluşturun:
PAUSE_HOOK_ENABLED=true
Kapatma / yeniden başlatma işlemi şimdi halt
veya reboot
komut dosyası çağrılmadan hemen önce duraklatılarak iletileri görüntülemeye zaman vermelidir . Ayrıca, etkinleştirme satırını yorumlayarak / kaldırarak kolayca devre dışı bırakılabilir / yeniden etkinleştirilebilir /etc/pause_hook.conf
. dpkg
Yükseltmeler sırasında bu şekilde hiçbir çakışma olmayacaktır .