2011-08-12 10 views
16

私は様々なプログラムのインストールプロセスを自動化するbashスクリプト(apt-getベースのOS用)を作成しています。このプロセスで私は "apt-get -fy update"と "apt-get -fy upgrade"を実行することがあります。アップグレードのプロセスでは、再起動が必要になることがあります。bash - apt-getに再起動が必要かどうかを検出する方法

私の質問:「apt-get -fy upgrade」を実行した後、システムが再起動を要求しているかどうかをテストする方法はありますか?私は人間の介入なしに最初から最後まで実行するスクリプトを作成しようとしています。

ありがとうございます。あなたは

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

を行う場合

答えて

34

ファイル/ var/run/reboot-requiredは、まさにあなたが望むものを使用します。だから私たちはこれを持っています:

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

完璧に働いた、ありがとう。 – Roger

0

それは秩序を尊重し、フィニッシュまで更新し、最終的には、サーバーを再起動します。

+1

これは興味深いですが、私は絶対に必要な場合にのみ再起動したいと思います。 – Roger

1

apt-getが実際にあなたに再起動が必要かどうかを知らせる予測可能な形式のメッセージが表示されるかどうかはわかりませんが、出力を確認するだけです。 apt-get -fy update | grep -q 'fill in restart message pattern' && rebootのようなものです。

信頼性の低いもう1つの代替方法は、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

関連する問題