SystemdDoctor
Requires= [Unit]

Requires= в systemd: жёсткая зависимость

Объявляет, что для работы этого unit необходим другой. При запуске systemd поднимет и его, а если тот не поднялся — запуск отменяется.

Что делает

Жёсткая зависимость означает: без этого работать нельзя. Неудача зависимости даёт сообщение «Dependency failed for …» и результат dependency — ваша служба не запускается вовсе, и её журнал остаётся пустым.

Порядок при этом не задаётся: Requires= без After= означает «запусти и то и это», возможно одновременно. Почти всегда нужны оба параметра.

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

Значения

ЗначениеЧто происходит
Requires=postgresql.serviceбез базы служба не запускается.
Requires=data.mountзависимость от точки монтирования.

Пример

Служба, которая без базы бессмысленна.

[Unit]
Requires=postgresql.service
After=postgresql.service

Если служба умеет ждать базу и повторять подключение, лучше Wants=: тогда падение базы не остановит запуск приложения.

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

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

Остановка зависимости останавливает и вашу службу — это отличает Requires= от Wants=.

Без After= порядок не определён: служба может стартовать одновременно с зависимостью.

Жёсткая зависимость от сетевого ресурса делает загрузку хрупкой: одна недоступная точка монтирования останавливает цепочку.

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

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

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

Источники

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