頻繁に、無人アップグレードのあるボックスにSSHで接続し、追加情報なしで「**システムの再起動が必要です***」と迎えられます。
私の「/var/run/reboot-required.pkgs」ファイルには以下が含まれます。
linux-image-3.13.0-61-generic
linux-base
linux-base
linux-base
再起動は気にしませんが、最初に再起動する必要がある理由の詳細がなければ、再起動は好きではありません。上記では、2つのパッケージがメッセージをトリガーしましたが、それ以上の説明はありません。
追加再起動の理由に関する詳細を取得してSSHサインインにも表示する方法はありますか?
理想的には、「パッケージxyzは[date/time]に更新されました。ファイルa、b、およびcを変更する必要がありましたが、システムがブロックされた/できなかったため、できませんでした」アクションをブロックします。次回の再起動時に、ファイルa、b、およびcが置き換えられます。」しかし、完全に人間が読めるものではないものもおそらく大丈夫です。
編集:別の、おそらく関連性または有用な 記事 。
すでにわかっているように、/var/run/reboot-required.pkgs
で再起動が必要なパッケージを見つけることができます
今、あなたはあなたが探している情報を見つけるためにパッケージの変更ログを調べるだけです。
/usr/share/doc/${package_name}
で変更ログを見つけることができます(例:zless /usr/share/doc/linux-image-3.13.0-61-generic/changelog.Debian.gz
)。apt-listchanges
のようないくつかのツールを提供して、これをより便利にします( 1 、 2 、- )。別の方法は、 packages.ubuntu.com を使用することです。
あなたの場合:
最終的に呼び出されるファイルは/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