
Системная утилита, которая выявляет и перезапускает демоны, использующие устаревшие библиотеки после обновления пакетов, для поддержания безопасности. Поддерживает контейнеры и интерпретаторы.
needrestart проверяет, какие демоны необходимо перезапустить после обновления библиотек. Он вдохновлён checkrestart из пакета debian-goodies.
В каталоге ex/ есть несколько скриптов-хуков (для использования с
apt и dpkg. Эти скрипты вызывают needrestart
после установки или обновления любых пакетов.
needrestart должен работать на GNU/Linux. Он имеет ограниченную
функциональность на GNU/kFreeBSD, поскольку /proc/<pid>/maps не показывает ссылки на удалённые файлы.
needrestart поддерживает, но не требует systemd (доступен с v0.6). Если используется systemd, следует также использовать libpam-systemd. Если needrestart обнаруживает systemd, он предполагает, что используется libpam-systemd, и полагается на имена cgroup для определения, принадлежит ли процесс пользовательской сессии или демону. Если вы не используете libpam-systemd, установите $nrconf{has_pam_systemd} в 0 в needrestart.conf.
Если systemd недоступен или не возвращает имя службы, needrestart использует хуки для определения соответствующего System V init-скрипта. Поставляемые хуки поддерживают следующие менеджеры пакетов:
Команда service используется для запуска традиционного System V init-скрипта.
needrestart использует модульный подход на основе perl-пакетов, предоставляющих пользовательский интерфейс. Поставляются следующие интерфейсы:
needrestart 0.8 представляет функцию обнаружения устаревшего ядра. Начиная с needrestart 3.5 можно фильтровать имена файлов образов ядра (требуется на Raspberry Pi).
В needrestart 3.0 добавлена функция обнаружения обновлений микрокода процессора для процессоров Intel. Начиная с needrestart 3.5 добавлена поддержка процессоров AMD.
needrestart 0.8 представляет функцию сканирования интерпретаторов. Интерпретаторы не только отображают бинарные (разделяемые) объекты, но и используют текстовые исходные файлы. Обнаружение интерпретаторов пытается проверить устаревшие исходные файлы, поскольку они также могут содержать проблемы безопасности. Это лишь эвристика и может не выявить все соответствующие исходные файлы. Поставляются следующие сканеры интерпретаторов:
needrestart 2.1 обнаруживает некоторые контейнерные технологии. Если процесс является частью контейнера, его может быть невозможно перезапустить с помощью Sys-V/systemd.
Существуют специальные perl-пакеты (NeedRestart::CONT::*), реализующие обнаружение контейнеров и их перезапуск. Поставляются следующие детекторы контейнеров:
needrestart может запускаться в пакетном режиме для использования результатов в других программах или скриптах.
Также доступен режим плагина nagios.