“需要系统重启”...为什么?如何获取触发此通知的内容以显示详细信息?

E. *_*iaz 34 motd

每隔一段时间,我就会通过 SSH 进入一个带有无人值守升级的盒子,并收到“** 系统重启需要 ***”而没有其他信息。

我的“/var/run/reboot-required.pkgs”文件包含:

linux-image-3.13.0-61-generic
linux-base
linux-base
linux-base
Run Code Online (Sandbox Code Playgroud)

我不介意重新启动,但我不喜欢在没有详细说明为什么我应该首先重新启动的情况下重新启动。在上面,我看到两个包触发了消息,但除此之外没有任何解释。

有没有办法获得有关重新启动原因的其他详细信息也显示在 SSH 登录中?

理想情况下,我想拉入一个包含人类可读内容的文件,例如“包 xyz 已在 [日期/时间] 更新。它需要修改文件 a、b 和 c,但无法修改,因为系统阻塞/将阻止该操作。下次重新启动时,文件 a、b 和 c 将被替换。” 但是一些不完全人类可读的东西也可能没问题。

Liv*_*eBT 32

编辑:另一篇可能相关或有用的文章

正如您已经发现的那样,您可以在 /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 上在哪里可以找到更改日志的链接


Ber*_*rto 7

最终调用的文件是/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
Run Code Online (Sandbox Code Playgroud)

因此,例如,您的/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
Run Code Online (Sandbox Code Playgroud)