SystemdDoctor
ExecReload= [Service]

ExecReload=: перезагрузка настроек службы без перезапуска

Задаёт команду, которая выполняется при systemctl reload. Обычно это посылка сигнала главному процессу, по которому программа перечитывает настройки, не прерывая работу.

Проверено на тестовой машине: systemd 255, Ubuntu 24.04. Сверено с документацией 15 сентября 2026. Как мы проверяем

Что делает

Перезагрузка настроек полезна там, где перезапуск дорог: веб-серверы не рвут соединения, балансировщики не теряют запросы. Но работает она только если программа это поддерживает: реакция на сигнал должна быть предусмотрена в ней самой.

Если программа не умеет перечитывать настройки, параметр лучше не задавать вовсе. Иначе systemctl reload завершит службу: сигнал HUP по умолчанию убивает процесс.

Где ставится. В секции [Service]. Без него команда systemctl reload для службы недоступна.

Значения

ЗначениеЧто происходит
/bin/kill -HUP $MAINPIDсамый частый вид: сигнал главному процессу.
/usr/sbin/nginx -s reloadсобственная команда программы, если она есть.
/bin/kill -USR2 $MAINPIDмягкая замена рабочих процессов у части служб.

Пример

Перезагрузка настроек сигналом и проверка перед ней.

[Service]
ExecStart=/usr/sbin/nginx -g 'daemon off; master_process on;'
ExecReload=/usr/sbin/nginx -t
ExecReload=/bin/kill -s HUP $MAINPID

Две строки выполняются по порядку: сначала проверка конфигурации, затем сигнал. Если проверка не прошла, сигнал не посылается и работающая служба остаётся с прежними настройками.

Типичные ошибки

Шаблонное ExecReload=/bin/kill -HUP $MAINPID у программы без обработки этого сигнала завершает службу при каждой перезагрузке настроек.

Подстановка $MAINPID пуста, если служба не запущена: команда перезагрузки настроек для остановленной службы вернёт ошибку.

Кавычки вокруг $MAINPID мешают подстановке. Писать надо без них.

Перезагрузка настроек не перечитывает unit-файл. Для этого нужен systemctl daemon-reload, и это совсем другая команда.

Связанные ошибки

  • signal=HUP (status=1/HUP) в systemdПроцесс службы завершён сигналом HUP. Обычно это перезагрузка настроек, которую программа поняла как команду выйти.
  • status=3/NOTIMPLEMENTED в systemdКод 3/NOTIMPLEMENTED по соглашению LSB: запрошенное действие не поддерживается. Обычно это reload у службы, которая его не умеет.
  • Warning: The unit file … changed on diskПредупреждение о том, что unit-файл изменился на диске: systemd работает со старой версией. Когда нужен daemon-reload.

Рядом стоящие параметры

Где важен на практике

Источники

  • systemd.service(5) официальная документация
    сверено 15 сентября 2026
  • Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04) собственная проверка
    сверено 15 сентября 2026