«Требуется перезагрузка системы»… почему? Как я могу получить то, что вызвало это уведомление, чтобы также показать детали?


26

Время от времени я помещаю 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 будут заменены. " Но что-то не совсем понятное человеку, вероятно, тоже хорошо.


ИМО кажется очевидным: ядро ​​было обновлено, и оно не может заменить себя вживую (по крайней мере, пока).
Муру

6
Конечно, это очевидно для вас, но только потому, что я начал копать и все искал, чтобы продемонстрировать, чего я хочу. Это не очевидно, как только я SSH в коробку. Отображение списка пакетов, требующих перезагрузки, также недостаточно. Я хочу знать дату и время обновления этого пакета и понятную человеку причину, объясняющую, почему пакет требует перезагрузки. Если ваш тостер хотел перезагрузить компьютер, вы бы хотели знать, почему. Так почему бы не потребовать столько же, если не больше, от очень сложной операционной системы?
Э. Диас,

Потому что я идиот? Не стесняйтесь редактировать, если считаете, что вопрос нуждается в уточнении.
Э. Диас

Ответы:


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чтобы сделать это более удобным ( 1 , 2 , 3 ).
  • Еще один способ сделать это - использовать package.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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.