“需要重新启动系统”…为什么?我如何获取触发此通知的原因以显示详细信息?


26

每隔一段时间,我都会将SSH放入一个无人值守的升级框中,并在没有其他信息的情况下打上“ **需要系统重启***”的字样。

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

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

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

有没有办法获取有关重新启动原因的更多详细信息,使其也显示在SSH登录上?

理想情况下,我想提取一个包含人类可读内容的文件,例如“ Package xyz在[date / time]更新。它需要修改文件a,b和c,但不能,因为系统被阻止/会阻止该操作。在下次重新启动期间,文件a,b和c将被替换。” 但是,某些并非完全人类可读的东西也可以。


IMO似乎很明显:内核已升级,并且无法实时替换自身(至少现在还不是)。
muru

6
当然,这对您来说很明显,但这只是因为我去挖掘并抬头看了看所有东西,以便能够展示自己想要的东西。我通过SSH进入包装盒后,这种情况并不明显。显示需要重新启动的软件包列表也是不够的。我想知道该软件包的更新日期和时间,以及一个易于理解的原因,它解释了为什么软件包需要重新启动。如果您的烤面包机想要重启,您想知道为什么。那么,为什么对高度复杂的操作系统却没有那么多的需求呢?
E. Diaz

因为我是白痴吗?如果您认为问题需要澄清,请随时进行编辑。
E. Diaz

Answers:


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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.