SystemdDoctor
DefaultDependencies= [Unit]

DefaultDependencies=no: отключение неявных зависимостей

Отключает неявные зависимости, которые systemd добавляет каждому unit: порядок относительно базовой цели, конфликт с целью выключения и прочее.

Что делает

По умолчанию службе добавляются зависимости, из-за которых она запускается после базовой инициализации и останавливается при выключении. Это правильно почти всегда. Отключают их только для служб, работающих на самых ранних этапах загрузки — например для тех, что должны стартовать до монтирования файловых систем.

Опасность в том, что вместе с удобством исчезают и гарантии: служба может запуститься до того, как готова файловая система или журнал, и вести себя непредсказуемо.

Где ставится. В секции [Unit].

Значения

ЗначениеЧто происходит
yesпо умолчанию: неявные зависимости добавляются.
nounit остаётся без неявных зависимостей — все нужные придётся объявить вручную.

По умолчанию: yes

Пример

Служба самой ранней стадии загрузки.

[Unit]
DefaultDependencies=no
Before=sysinit.target
Conflicts=shutdown.target
Before=shutdown.target

Обратите внимание: конфликт с целью выключения приходится объявлять вручную — иначе служба не будет остановлена при выключении.

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

Без неявных зависимостей служба может запуститься до готовности журнала: её сообщения потеряются.

Забытый конфликт с целью выключения приводит к тому, что служба не останавливается при выключении машины.

Для обычных прикладных служб отключать неявные зависимости не нужно никогда.

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

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

Источники

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