SystemdDoctor
Delegate= [Service]

Delegate=yes: передача управления контрольными группами службе

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

Что делает

Без этого параметра systemd считает поддерево своим и может переставить процессы обратно. Это ломает работу таких программ: они рассчитывают, что созданные ими группы останутся на месте.

Параметру можно указать, какие контроллеры делегировать: Delegate=cpu memory pids. Обычным службам он не нужен вовсе.

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

Значения

ЗначениеЧто происходит
yesделегировать все доступные контроллеры.
cpu memory pidsделегировать только перечисленные.
noпо умолчанию.

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

Пример

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

[Service]
Delegate=yes
KillMode=process
ExecStart=/usr/bin/containerd

Такая связка стандартна для сред исполнения контейнеров: они управляют ресурсами сами, а systemd лишь следит за главным процессом.

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

Обычным службам параметр не нужен и только ослабляет учёт ресурсов.

Делегированное поддерево systemd не ограничивает: ответственность переходит к самой службе.

На смешанной иерархии контрольных групп делегирование работает неполно.

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

  • status=219/CGROUP в systemdКод 219/CGROUP: не удалось создать или настроить контрольную группу службы. Причины на уровне системы и контейнеров.
  • Failed with result 'resources'Состояние resources: systemd не смог выделить ресурсы для запуска службы. Чем отличается от кодов 200-й группы и что проверять.

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

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

Источники

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