问题描述
每隔一段时间,我会通过 SSH 连接到一个带有 unattended-upgrades 的盒子,然后收到“** System restart required ***”的问候,没有其他信息。
我的 ‘/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 将被替换。但是一些不完全人类可读的东西也可能没问题。
最佳思路
编辑:另一个可能相关或有用的 article 。
正如您已经发现的那样,您可以在 /var/run/reboot-required.pkgs
中找到需要重新启动的包
现在您只需要查看包的更改日志即可找到您要查找的信息。
-
如果您已经在机器上,您可以在
/usr/share/doc/${package_name}
中找到更改日志(例如:zless /usr/share/doc/linux-image-3.13.0-61-generic/changelog.Debian.gz
)。 -
另一种方法是使用 packages.ubuntu.com 。\n在你的情况下:\n
次佳思路
最终调用的文件是 /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