В CentOS 5.8+ и Red Hat Enterprise 6+ при установке / обновлении пакетов я заметил, что при необходимости создается файл флага / var / run / reboot-required. В Ubuntu (и, как я полагаю, в Debian), если установлен пакет update-notifier-common, сценарий postinst пакета запускает создание этого файла флага. В RHEL / CentOS я не могу понять, как это происходит.
Например, в RHEL и CentOS я недавно установил несколько обновлений и был создан / var / run / reboot-required. Одним из них было обновление пакета openssl. Я предполагаю, что это было причиной создания файла флага, поскольку в Ubuntu он также работает таким образом. Однако я посмотрел на все «rpm -q --scripts» для каждого обновленного пакета и не видел ничего, что могло бы создать этот файл флага. В основном я видел "программу постинсталляции: / sbin / ldconfig".
Итак, мои вопросы:
Этот файл не упоминается ни в одном сценарии пакета, ни в каких rpm
макрос (см. /usr/lib/rpm/**/macros.*
).
Я подозреваю, что это пришло из неофициального пакета, основанного на обычной практике в сообществах Debian и Ubuntu.
Там его можно создать http://packages.debian.org/squeeze/update-notifier.
Это было то, что я создал сам. У меня был скрипт, который отслеживал версии пакетов (например, ядро Linux), и когда они менялись, он создавал «/ var / run / reboot-required». Он был создан как повар рецепт, поэтому он, вероятно, не имеет отношения к другим, и его легко воспроизвести, если вы не используете повара.
Например, в RHEL и CentOS я недавно установил несколько обновлений и был создан / var / run / reboot-required. Одним из них было обновление пакета openssl.
Я пытался обновить OpenSSL на CentOS 5.8 и 6.0, но оба не создают этот файл. Кто-нибудь еще это понял?
Какой у него тип файла? Покажите, пожалуйста, содержание?
Если «требуется» действительно означает «требуется», AFAIK, есть только обновление ядра, которое требует перезагрузки (если вы хотите загрузиться в новое ядро, если вы не используете Ksplice). Для всех остальных обновлений (включая: glibc, tzdata, SysVinit, ...) вам "всего лишь" нужно перезапустить все программы, которые его используют или зависят от него.