Bu verileri bir dosyaya kaydetmenin bir yolu yok gibi görünüyor. Önyükleme işlemi için, bootlogddosyayı 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 rsyslogve 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/haltve / veya /etc/init.d/rebootkomut dosyalarını gerçek halt/ öğesinden hemen önce duraklatmaktır reboot. İçin haltkomut, 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_stopfonksiyonun sonunda ve haltkomutu ç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/rebootdosyayı düzenlemeniz gerekir . Burada kullanılan komut elbette işlevin rebootaksine haltve yine do_stopfonksiyonun 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 initscriptspaket 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_hookve 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.confiçin satırı içeren dosyaları oluşturun:
PAUSE_HOOK_ENABLED=true
Kapatma / yeniden başlatma işlemi şimdi haltveya rebootkomut 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. dpkgYükseltmeler sırasında bu şekilde hiçbir çakışma olmayacaktır .