Как я могу узнать, требуется ли перезагрузка после обновления?

28

У меня 4 сервера с ОС Debian Wheezy. У меня установлен Apticron, который информирует меня об обновлениях. Обновления Debian реализуются так часто, что когда я заканчиваю обновлять последний из 4 серверов, я получаю новые письма о новых обновлениях на первом сервере. Я пытаюсь обновить все серверы, когда получаю уведомление, но никогда не знаю, есть ли необходимость перезагрузить серверы. Я прочитал, что если каталог "/var/run"содержит файл, "reboot-required"я должен перезагрузить сервер. Но я никогда не видел этот файл в "/var/run". Как я могу узнать, когда требуется перезагрузка? Я не хочу перезагружать свои серверы каждый раз, когда я устанавливаю новые обновления, если это не нужно.

Я понимаю, что если я обновляю PHP или MySQL и т. Д., Мне не нужно перезагружать сервер, но обновления обычно содержат много «lib ...».

Ниже приведены 9 обновлений (я получил на этой неделе).

krb5-locales 1.10.1+dfsg-5+deb7u3
libdbus-1-3 1.6.8-1+deb7u6
libgssapi-krb5-2 1.10.1+dfsg-5+deb7u3
libk5crypto3 1.10.1+dfsg-5+deb7u3
libkrb5-3 1.10.1+dfsg-5+deb7u3
libkrb5support0 1.10.1+dfsg-5+deb7u3
libruby1.8 1.8.7.358-7.1+deb7u2
libxml2 2.8.0+dfsg1-7+wheezy3
ruby1.8 1.8.7.358-7.1+deb7u2

Я понятия не имею, что такое «libkrb, libgssapi» и т. Д. Как я могу определить, нужна ли перезагрузка? Пожалуйста, не предлагайте устанавливать UnattendedUpgrades, чтобы позволить серверам обновляться автоматически, поскольку это может привести к отключению веб-сайтов, если что-то не обновляется.

user1406271
источник
Если вы применяете только securityпоток, а не общие обновления, вы не получите столько обновлений.
пул

Ответы:

31

Проверьте checkrestartиз debian-goodiesпакета. Он показывает, какие процессы используют старые версии библиотек, которые вы обновили. Если вы не можете удалить все процессы из этого списка, вам нужна перезагрузка :)

Кроме того (как сказал ЮКЮК), всегда перезагружайтесь после обновления ядра!

натуральный
источник
10
Кроме того, оформить заказ needrestart. linux-audit.com/…
ypid
9

cat /var/run/reboot-required.pkgsвидеть 'service' waiting for a reload. Ничего не требует перезагрузки, только обновление ядра (и Windows :)).

Или на Debian: lsof | grep lib | grep DEL

YuKYuK
источник
Забудьте, чтобы сказать: он перечисляет все обновленные библиотеки. После этого вам нужно перезапустить приложения с зависимостями.
ЮКЮК
Как я уже писал в своем вопросе, я никогда не видел файл /var/run/reboot-required.pkgs. Я проверяю эту папку после каждого обновления, но ничего.
user1406271
лсоф | grep lib | grep DEL, чтобы увидеть lib, ожидающий "обновления"
YuKYuK
2
Да, и команда показывает библиотеки, ожидающие «обновления», а некоторые библиотеки просто ждут перезагрузки «службы». Только обновление ядра требует перезагрузки системы (потому что ядро ​​- это ядро ​​:).
ЮКЮК
3
Примечание относительно Debian Jessie: reboot-notifierнебольшой пакет, который не установлен по умолчанию и добавляет этот файл, когда требуется перезагрузка для загрузки обновленного ядра. reboot-notifierможет использоваться как альтернатива, для update-notifier-commonкоторой был удален Jessie в Debian. Смотрите также: serverfault.com/a/92939/177172 .
ypid
2

Просто чтобы добавить к этому, у меня была такая же проблема с моими серверами, и я написал скрипт обновления, где я проверяю / var / run /, как YuKYuK предложил:

test -f /var/run/reboot-required && echo rebooting && sudo reboot
мин хундже
источник