SystemdDoctor

Warning: The unit file … changed on disk

Предупреждение «The unit file, source configuration file or drop-ins of … changed on disk» значит, что вы правили unit-файл, а systemd ещё держит в памяти прежнюю версию. Все команды до перезагрузки конфигурации будут применять старые настройки.

Что это значит

Это самая частая причина, по которой «правка не работает». Порядок всегда один: правим файл, выполняем systemctl daemon-reload, затем перезапускаем службу. Перезапуск без перезагрузки конфигурации применит старый вариант.

Вероятные причины

По порядку: сверху то, что встречается чаще.

  1. Unit-файл или drop-in изменён без перезагрузки конфигурации

    systemd читает файлы при запуске и по команде. Изменения на диске он замечает, но сам не применяет.

  2. Правка внесена пакетом при обновлении

    Обновление пакета заменяет unit-файл в /usr/lib/systemd/system. До перезагрузки конфигурации действует прежний вариант, и поведение службы не совпадает с файлом на диске.

  3. Правка внесена не в тот файл

    Если есть переопределение в /etc/systemd/system, правка файла пакета не даст эффекта: победит переопределение. Предупреждение при этом может и не появиться.

Диагностика

Команды идут в том порядке, в котором их стоит выполнять: каждая следующая проверяет то, что осталось после предыдущей.

Прямо отвечает, нужна ли перезагрузка конфигурации: yes или no.

systemctl show myapp.service -p NeedDaemonReload

Печатает действующее описание со всеми drop-in и путями файлов — по нему видно, что реально применено.

systemctl cat myapp.service

После удаления файлов без перезагрузки конфигурации остаются «потерянные» unit — их видно здесь.

systemctl list-units --state=not-found --no-pager | head

Решение

Решение своё для каждой причины. Сначала определите, какая из них ваша, — иначе правки наложатся друг на друга.

1. Unit-файл или drop-in изменён без перезагрузки конфигурации
Почему происходит
systemd читает файлы при запуске и по команде. Изменения на диске он замечает, но сам не применяет.
Как проверить
Посмотрите, что systemd считает действующей конфигурацией.
systemctl cat myapp.service
systemctl show myapp.service -p NeedDaemonReload
Как исправить
Перечитайте конфигурацию и перезапустите службу.
sudo systemctl daemon-reload && sudo systemctl restart myapp.service
2. Правка внесена пакетом при обновлении
Почему происходит
Обновление пакета заменяет unit-файл в /usr/lib/systemd/system. До перезагрузки конфигурации действует прежний вариант, и поведение службы не совпадает с файлом на диске.
Как проверить
Сравните время изменения файла и время запуска systemd.
ls -l /usr/lib/systemd/system/myapp.service
systemctl show -p NeedDaemonReload --value myapp.service
Как исправить
Выполните перезагрузку конфигурации. В дистрибутивах это обычно делает сам пакет, но при установке вручную шаг остаётся за вами.
3. Правка внесена не в тот файл
Почему происходит
Если есть переопределение в /etc/systemd/system, правка файла пакета не даст эффекта: победит переопределение. Предупреждение при этом может и не появиться.
Как проверить
Посмотрите все источники конфигурации службы.
systemctl cat myapp.service | head -5
sudo ls -l /etc/systemd/system/myapp.service.d/ 2>/dev/null
Как исправить
Правьте переопределение через systemctl edit myapp.service — так правка окажется там, где её действительно применят.

Пример вывода

systemctl предупреждает, что файл на диске новее загруженного. Пример показательный: он собран на тестовой машине специально для этой страницы, а не взят из чужого журнала.

$ systemctl status myapp.service
Warning: The unit file, source configuration file or drop-ins of myapp.service changed on disk.
Run 'systemctl daemon-reload' to reload units.
● myapp.service - My application
     Loaded: loaded (/etc/systemd/system/myapp.service; enabled; preset: enabled)
     Active: active (running) since Mon 2026-09-15 10:02:31 MSK; 2h ago

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

Источники

  • systemctl(1)
    daemon-reload и когда он необходим.
    официальная документация, systemd 255
    сверено 15 сентября 2026
  • Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04)
    Проверено правкой unit-файла с последующим перезапуском без daemon-reload: применялась прежняя версия.
    собственная проверка, systemd 255
    сверено 15 сентября 2026