У меня 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, чтобы серверы обновлялись автоматически, потому что это может привести к отключению веб-сайтов, если что-то обновляется некорректно.
Проверьте checkrestart
из debian-goodies
пакет. Он показывает, какие процессы используют старые версии обновленных библиотек. Если вы не можете удалить все процессы из этого списка, вам нужна перезагрузка :)
Кроме того (как сказал YuKYuK), всегда перезагружайтесь после обновления ядра!
cat /var/run/reboot-required.pkgs
увидеть 'service' waiting for a reload
. Перезагрузка ничего не требует, только обновление ядра (и Windows :)).
Или в Debian: lsof | grep lib | grep DEL
Чтобы добавить к этому, у меня была такая же проблема с моими серверами, и я написал сценарий обновления, в котором я проверяю / var / run /, как предложил YuKYuK:
test -f /var/run/reboot-required && echo rebooting && sudo reboot