2011-08-12 72 views
16

我正在編寫一個bash腳本(用於基於apt-get的操作系統),可以自動執行各種程序的安裝過程。在這個過程中,我有時會運行「apt-get -fy update」和「apt-get -fy upgrade」。在升級過程中,偶爾需要重啓。Bash - 如何檢測apt-get是否需要重新啓動

我的問題:有沒有一種測試方法,如果系統在運行「apt-get -fy upgrade」後要求重啓?我正在嘗試編寫腳本,讓它在沒有任何人爲干預的情況下始終運行。

謝謝。

回答

34

使用文件/ var/run/reboot-required,它正是你想要的。所以我們會有這個:

apt-get update && apt-get -fy upgrade && [ -f /var/run/reboot-required ] && shutdown -r now 
+0

完美工作,謝謝。 – Roger

0

如果你做一個

apt-get -fy update && shutdown -r now 

,將尊重秩序,將更新,直到完成最後重新啓動服務器。

+1

這很有趣,但我想只在絕對必要時重新啓動。 – Roger

1

我不記得apt-get是否實際上爲您提供了可預測格式的消息,通知您是否需要重新啓動,但是如果是這樣,您可以檢查輸出,像apt-get -fy update | grep -q 'fill in restart message pattern' && reboot

另一種可能不太可靠的替代方法是使用debian-goodies包中的checkrestart

+0

Checkrestart位於Lucid存儲庫中:apt-cache search checkrestart >> debian-goodies - Debian系統的小型工具箱式實用程序。另外,我在這裏發現了一些東西:http://manpages.ubuntu.com/manpages/natty/man1/checkrestart.1.html – Roger

+0

正確的軟件包被稱爲「debian-goodies」。安裝完成後,您可以輸入:checkrestart -v(詳細信息)。 – Roger

相關問題