SystemdDoctor
служба не работает цели зависимости

Своя цель не запускает свои службы

Цель сама ничего не запускает: службы попадают в неё через связи. Если ни одна служба не объявила связь и цель не объявила желание их запустить, она достигается пустой.

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

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

  1. Службы не связаны с целью

    Связь объявляется либо со стороны цели через желание, либо со стороны службы через механизм установки.

  2. Цель не включена в автозапуск

    Своя цель тоже должна быть включена или затребована другой целью, иначе при загрузке она не достигается.

  3. Службы связаны только через остановку

    Параметр принадлежности передаёт остановку и перезапуск, но не запуск. Цель достигается, службы не стартуют.

Диагностика

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

Что входит в цель.

systemctl list-dependencies mystack.target --no-pager

Включена ли цель.

systemctl is-enabled mystack.target

Объявленные связи цели.

systemctl show mystack.target -p Wants -p Requires

Решение

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

1. Службы не связаны с целью
Почему происходит
Связь объявляется либо со стороны цели через желание, либо со стороны службы через механизм установки.
Как проверить
Посмотрите зависимости цели.
systemctl list-dependencies mystack.target --no-pager
systemctl show mystack.target -p Wants
Как исправить
Объявите службы в цели через Wants= либо укажите цель в секции установки каждой службы и включите их.
# в цели
[Unit]
Wants=myapp-api.service myapp-worker.service
2. Цель не включена в автозапуск
Почему происходит
Своя цель тоже должна быть включена или затребована другой целью, иначе при загрузке она не достигается.
Как проверить
Посмотрите состояние включения.
systemctl is-enabled mystack.target
Как исправить
Включите цель с указанием в секции установки, что её хочет обычная цель загрузки.
# в цели
[Install]
WantedBy=multi-user.target
3. Службы связаны только через остановку
Почему происходит
Параметр принадлежности передаёт остановку и перезапуск, но не запуск. Цель достигается, службы не стартуют.
Как проверить
Посмотрите параметры служб.
systemctl show myapp-api.service -p PartOf -p WantedBy
Как исправить
Добавьте связь запуска: принадлежность отвечает только за остановку.

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

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

$ sudo systemctl start mystack.target
$ systemctl list-dependencies mystack.target --no-pager
mystack.target
● └─(ничего)

$ systemctl is-active myapp-api.service
inactive

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

Источники

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