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


26

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

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

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

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

リブートの理由に関する追加の詳細を取得して、SSHサインインにも表示する方法はありますか?

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


IMOのように明らかです:カーネルがアップグレードされ、それ自体をライブで置き換えることはできません(少なくとも、まだ)。
ムル

6
もちろん、それはあなたには明らかですが、私が欲しいものを示すことができるように、私が掘って行ってすべてを調べたからです。ボックスにSSHで接続するとすぐにはわかりません。再起動が必要なパッケージリストを表示するだけでも不十分です。パッケージが更新された日時と、パッケージが再起動を必要とする理由を説明する人間が読み取れる理由を知りたい。トースターで再起動が必要な場合は、その理由を知りたいでしょう。それでは、非常に複雑なオペレーティングシステムに対して、それ以上ではないにしても、多くを要求しないのはなぜでしょうか。
E.ディアス

私はバカだから?質問に説明が必要だと思われる場合は、自由に編集してください。
E.ディアス

回答:


24

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

すでにわかったように、再起動が必要なパッケージは次の場所にあります。 /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(これをより便利にするために123)。
  • 別の方法はpackages.ubuntu.comを使用することです。

    あなたの場合:

    packages.ubuntu.comの変更ログのリンクの場所を示す画像


5

最終的に呼び出されるファイルはです/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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.