web-dev-qa-db-ja.com

「システムの再起動が必要です」...なぜですか?この通知をトリガーしたものを取得して詳細を表示するにはどうすればよいですか?

頻繁に、無人アップグレードのあるボックスにSSHで接続し、追加情報なしで「**システムの再起動が必要です***」と迎えられます。

私の「/var/run/reboot-required.pkgs」ファイルには以下が含まれます。

linux-image-3.13.0-61-generic
linux-base
linux-base
linux-base

再起動は気にしませんが、最初に再起動する必要がある理由の詳細がなければ、再起動は好きではありません。上記では、2つのパッケージがメッセージをトリガーしましたが、それ以上の説明はありません。

追加再起動の理由に関する詳細を取得してSSHサインインにも表示する方法はありますか?

理想的には、「パッケージxyzは[date/time]に更新されました。ファイルa、b、およびcを変更する必要がありましたが、システムがブロックされた/できなかったため、できませんでした」アクションをブロックします。次回の再起動時に、ファイルa、b、およびcが置き換えられます。」しかし、完全に人間が読めるものではないものもおそらく大丈夫です。

25
E. Diaz

編集:別の、おそらく関連性または有用な 記事

すでにわかっているように、/var/run/reboot-required.pkgsで再起動が必要なパッケージを見つけることができます

今、あなたはあなたが探している情報を見つけるためにパッケージの変更ログを調べるだけです。

  • すでにマシン上にいる場合は、/usr/share/doc/${package_name}で変更ログを見つけることができます(例:zless /usr/share/doc/linux-image-3.13.0-61-generic/changelog.Debian.gz)。
  • Debianはapt-listchangesのようないくつかのツールを提供して、これをより便利にします( 12 、- )。
  • 別の方法は、 packages.ubuntu.com を使用することです。

    あなたの場合:

    image showing where to find the link for the changelog on packages.ubuntu.com

24
LiveWireBT

最終的に呼び出されるファイルは/usr/lib/update-notifier/update-motd-reboot-required/etc/update-motd.d/98-reboot-requiredによって呼び出されます)です。

これらのファイルのいずれかの条件付きifステートメント内に、これを追加するだけです:

    echo "Packages causing reboot:"
    cat /var/run/reboot-required.pkgs

したがって、たとえば、/usr/lib/update-notifier/update-motd-reboot-requiredファイルは次のようになります。

#!/bin/sh -e
#
# helper for update-motd

if [ -f /var/run/reboot-required ]; then
        cat /var/run/reboot-required
        echo "Packages causing reboot:"
        cat /var/run/reboot-required.pkgs
fi
4
Berto