web-dev-qa-db-ja.com

無人-アップグレードは再起動しません

常に完全に更新されるように、Debian 7を無人アップグレード(毎朝午前6時)で安定して実行しています。私は次の設定を持っています:

$ cat /etc/apt/apt.conf.d/50unattended-upgrades 
// Automatically upgrade packages from these Origin patterns
Unattended-Upgrade::Origins-Pattern {
        // Archive or Suite based matching:
        // Note that this will silently match a different release after
        // migration to the specified archive (e.g. testing becomes the
        // new stable).
      "o=Debian,a=stable";
      "o=Debian,a=stable-updates";
//      "o=Debian,a=proposed-updates";
        "Origin=Debian,archive=stable,label=Debian-Security";
};

// List of packages to not update
Unattended-Upgrade::Package-Blacklist {
//  "vim";
//  "libc6";
//  "libc6-dev";
//  "libc6-i686";
};

// This option allows you to control if on a unclean dpkg exit
// unattended-upgrades will automatically run 
//   dpkg --force-confold --configure -a
// The default is true, to ensure updates keep getting installed
//Unattended-Upgrade::AutoFixInterruptedDpkg "false";

// Split the upgrade into the smallest possible chunks so that
// they can be interrupted with SIGUSR1. This makes the upgrade
// a bit slower but it has the benefit that shutdown while a upgrade
// is running is possible (with a small delay)
//Unattended-Upgrade::MinimalSteps "true";

// Install all unattended-upgrades when the machine is shuting down
// instead of doing it in the background while the machine is running
// This will (obviously) make shutdown slower
//Unattended-Upgrade::InstallOnShutdown "true";

// Send email to this address for problems or packages upgrades
// If empty or unset then no email is sent, make sure that you
// have a working mail setup on your system. A package that provides
// 'mailx' must be installed. E.g. "[email protected]"
Unattended-Upgrade::Mail "root";

// Set this value to "true" to get emails only on errors. Default
// is to always send a mail if Unattended-Upgrade::Mail is set
Unattended-Upgrade::MailOnlyOnError "true";

// Do automatic removal of new unused dependencies after the upgrade
// (equivalent to apt-get autoremove)
//Unattended-Upgrade::Remove-Unused-Dependencies "false";

// Automatically reboot *WITHOUT CONFIRMATION* if a 
// the file /var/run/reboot-required is found after the upgrade 
Unattended-Upgrade::Automatic-Reboot "true";


// Use apt bandwidth limit feature, this example limits the download
// speed to 70kb/sec
//Acquire::http::Dl-Limit "70";

ご覧のとおり、自動再起動はtrueであるため、サーバーは自動的に再起動する必要があります。前回サーバーが100日以上オンラインになっていることを確認しました。つまり、サーバーの起動中にDebian7.1からDebian7.2への更新が行われた(実際、すべての更新がインストールされた)のですが、これにはカーネルの更新が含まれます。サーバーが再起動するはずです。それはしませんでした。サーバーの実行速度が非常に遅いため、再起動して修正しました。

調査を行ったところ、無人アップグレードは/ var/run /にある再起動が必要なファイルに応答することがわかりました。このファイルに触れて1週間待ちましたが、ファイルはまだ存在し、サーバーは再起動しませんでした。したがって、無人アップグレードは自動再起動部分を無視すると思います。それで、私はここで何か間違ったことをしていますか?サーバーが再起動しなかったのはなぜですか?

ちなみに、アップグレード部分は完璧に機能しますが、再起動部分だけが正常に機能していないようです。

5
Cheiron

構成で説明されているファイル/var/run/reboot-requiredは、パッケージupdate-notifier-commonのスクリプトによって作成されます。このパッケージがインストールされていないと、自動再起動は発生しません。

残念ながら、これはunattended-upgradesのどこにも言及されていません。

5
adietrich