SystemdDoctor
служба не работает сеанс ресурсы редкое

status=220/SETSID в systemd

Код 220/SETSID означает неудачу вызова setsid() — создания нового сеанса для процесса службы. Шаг служебный, от unit-файла почти не зависит, поэтому код редкий и обычно указывает на необычное окружение или исчерпанные ресурсы.

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

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

  1. Исчерпаны ресурсы системы

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

  2. Ограничения окружения запуска

    Во вложенных контейнерах и при внешней фильтрации системных вызовов создание сеанса может быть запрещено.

Диагностика

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

Показывает шаг SETSID и причину.

journalctl -xeu myapp.service --no-pager -n 20

Проверка версии про исчерпание пределов.

systemctl show myapp.service -p TasksMax -p TasksCurrent -p Slice

Решение

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

1. Исчерпаны ресурсы системы
Почему происходит
При упоре в предел числа процессов или нехватке памяти служебные вызовы начинают отказывать.
Как проверить
Посмотрите пределы и загрузку.
systemctl show myapp.service -p TasksMax -p TasksCurrent
free -h
Как исправить
Освободите ресурсы или поднимите TasksMax=. Сам код тут следствие.
2. Ограничения окружения запуска
Почему происходит
Во вложенных контейнерах и при внешней фильтрации системных вызовов создание сеанса может быть запрещено.
Как проверить
Определите окружение и посмотрите причину в журнале.
systemd-detect-virt
journalctl -xeu myapp.service -n 20 --no-pager
Как исправить
Запускайте службу в окружении без такого запрета либо снимите внешнюю фильтрацию.

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

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

× myapp.service - My application
     Active: failed (Result: exit-code) since Mon 2026-09-14 20:48:27 MSK; 1s ago
    Process: 19500 ExecStart=/usr/local/bin/myapp (code=exited, status=220/SETSID)

systemd[19500]: myapp.service: Failed at step SETSID spawning /usr/local/bin/myapp: Resource temporarily unavailable

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

  • status=219/CGROUP в systemd Код 219/CGROUP: не удалось создать или настроить контрольную группу службы. Причины на уровне системы и контейнеров.
  • Too many tasks: упор в предел TasksMax Служба не может создать новый процесс: достигнут предел TasksMax. Где он задан и как поднять правильно.
  • status=207/SIGNAL_MASK в systemd Код 207/SIGNAL_MASK: systemd не смог установить маску сигналов для нового процесса. Редкий код, признак проблем в окружении.
  • Cannot allocate memory в журнале службы Не удалось выделить память: предел службы, память машины, настройка overcommit, исчерпанные области отображения.
  • Disk quota exceeded для службы Место на разделе есть, а запись отклоняется: исчерпана дисковая квота пользователя или группы.
  • Elasticsearch: max virtual memory areas vm.max_map_count is too low Elasticsearch отказывается стартовать из-за заниженного vm.max_map_count. Как поднять значение и закрепить его.
  • Failed with result 'resources' Состояние resources: systemd не смог выделить ресурсы для запуска службы. Чем отличается от кодов 200-й группы и что проверять.
  • No buffer space available в журнале службы Ошибка 105: нет места в буферах ядра. Разбор для сети и таблиц соседей.

Источники

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