“需要重启系统”...为什么?我如何才能让触发此通知的原因也显示详细信息?

“需要重启系统”...为什么?我如何才能让触发此通知的原因也显示详细信息?

时不时地,我会通过 SSH 进入一个带有无人值守升级的盒子,然后会看到“** 需要重启系统 ***”而没有任何其它信息。

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

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

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

有没有办法额外的有关重启的原因的详细信息也会显示在 SSH 登录上?

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

答案1

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

正如您已经发现的那样,您可以在/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 上查找变更日志链接的位置

答案2

最终调用的文件是/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

相关内容