SystemdDoctor
drop-in (каталог .d)

Drop-in в systemd: переопределение unit без правки файла пакета

Файл с дополнительными параметрами в каталоге имя-unit.d, который systemd накладывает поверх основного unit-файла. Позволяет менять настройки, не правя файл пакета.

Что делает

Правка файла пакета — плохая практика: обновление его заменит. Drop-in решает это: он лежит в /etc/systemd/system/имя.service.d/, переживает обновления и явно показывает, что именно вы изменили. Создавать его удобнее командой systemctl edit.

Важная особенность: параметры со списком значений (ExecStart=, Environment=, After=) дополняются, а не заменяются. Чтобы заменить, нужно сначала сбросить значение пустым присваиванием.

Где ставится. Каталог /etc/systemd/system/имя-unit.d/ с файлами, имя которых заканчивается на .conf.

Значения

ЗначениеЧто происходит
systemctl edit имя.serviceсоздать или открыть drop-in в редакторе.
systemctl edit --full имя.serviceправить копию всего файла вместо дополнения.
systemctl revert имя.serviceубрать все переопределения.
systemd-deltaпоказать все переопределения в системе.

Пример

Замена команды запуска в чужом unit-файле.

# /etc/systemd/system/myapp.service.d/override.conf
[Service]
ExecStart=
ExecStart=/usr/local/bin/myapp --new-flag
LimitNOFILE=65535

Пустая строка сбрасывает прежнее значение. Без неё systemd сочтёт, что задано две команды запуска, и откажется загружать unit.

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

Файл без расширения .conf не читается.

Списочные параметры дополняются: без сброса получится две команды запуска.

После правки нужен systemctl daemon-reload.

Каталог должен называться точно по имени unit, включая расширение.

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

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

Источники

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