status=220/SETSID в systemd
Код 220/SETSID означает неудачу вызова setsid() — создания нового сеанса для процесса службы. Шаг служебный, от unit-файла почти не зависит, поэтому код редкий и обычно указывает на необычное окружение или исчерпанные ресурсы.
Вероятные причины
По порядку: сверху то, что встречается чаще.
-
Исчерпаны ресурсы системы
При упоре в предел числа процессов или нехватке памяти служебные вызовы начинают отказывать.
-
Ограничения окружения запуска
Во вложенных контейнерах и при внешней фильтрации системных вызовов создание сеанса может быть запрещено.
Диагностика
Команды идут в том порядке, в котором их стоит выполнять: каждая следующая проверяет то, что осталось после предыдущей.
Показывает шаг SETSID и причину.
journalctl -xeu myapp.service --no-pager -n 20Проверка версии про исчерпание пределов.
systemctl show myapp.service -p TasksMax -p TasksCurrent -p SliceРешение
Решение своё для каждой причины. Сначала определите, какая из них ваша, — иначе правки наложатся друг на друга.
- Почему происходит
- При упоре в предел числа процессов или нехватке памяти служебные вызовы начинают отказывать.
- Как проверить
-
Посмотрите пределы и загрузку.
systemctl show myapp.service -p TasksMax -p TasksCurrent free -h
- Как исправить
-
Освободите ресурсы или поднимите
TasksMax=. Сам код тут следствие.
- Почему происходит
- Во вложенных контейнерах и при внешней фильтрации системных вызовов создание сеанса может быть запрещено.
- Как проверить
-
Определите окружение и посмотрите причину в журнале.
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 (Ubuntu 24.04)
Наблюдалось при упоре в предел числа задач у среза.