status=215/CPUAFFINITY в systemd
Код 215/CPUAFFINITY значит, что systemd не сумел привязать процесс службы к ядрам из CPUAffinity=. Чаще всего в списке есть номера ядер, которых на машине нет — unit-файл перенесли с другого сервера.
Вероятные причины
По порядку: сверху то, что встречается чаще.
-
В списке ядра, которых нет на машине
Привязка к несуществующему ядру недопустима. Unit, написанный для машины с 16 ядрами, на машине с 4 ядрами упадёт на этом шаге.
-
Указанные ядра отключены
Ядро можно вывести из работы через sysfs или параметрами загрузки. Оно существует, но привязка к нему запрещена.
-
Ошибка в записи списка
Список задаётся числами и диапазонами через пробел или запятую:
CPUAffinity=0 1 2илиCPUAffinity=0-3. Другие разделители не разбираются.
Диагностика
Команды идут в том порядке, в котором их стоит выполнять: каждая следующая проверяет то, что осталось после предыдущей.
Показывает шаг CPUAFFINITY и причину.
journalctl -xeu myapp.service --no-pager -n 20Два похожих параметра рядом: AllowedCPUs= работает через cgroup и не даёт этот код, их часто путают.
systemctl show myapp.service -p CPUAffinity -p AllowedCPUsРешение
Решение своё для каждой причины. Сначала определите, какая из них ваша, — иначе правки наложатся друг на друга.
- Почему происходит
- Привязка к несуществующему ядру недопустима. Unit, написанный для машины с 16 ядрами, на машине с 4 ядрами упадёт на этом шаге.
- Как проверить
-
Сравните список с числом ядер.
systemctl show myapp.service -p CPUAffinity nproc lscpu | grep -E "^CPU\(s\)|On-line"
- Как исправить
- Исправьте список под фактические ядра или уберите параметр: планировщик и без него распределяет нагрузку.
- Почему происходит
- Ядро можно вывести из работы через sysfs или параметрами загрузки. Оно существует, но привязка к нему запрещена.
- Как проверить
-
Посмотрите список работающих ядер.
cat /sys/devices/system/cpu/online
- Как исправить
- Привязывайтесь только к работающим ядрам либо верните отключённые в работу.
- Почему происходит
- Список задаётся числами и диапазонами через пробел или запятую:
CPUAffinity=0 1 2илиCPUAffinity=0-3. Другие разделители не разбираются.
- Как проверить
-
Посмотрите действующее значение.
systemctl show myapp.service -p CPUAffinity
- Как исправить
- Приведите список к допустимому виду.
Пример вывода
Unit перенесён с более крупного сервера. Пример показательный: он собран на тестовой машине специально для этой страницы, а не взят из чужого журнала.
× worker.service - Background worker
Active: failed (Result: exit-code) since Mon 2026-09-14 20:15:51 MSK; 1s ago
Process: 18400 ExecStart=/usr/local/bin/worker (code=exited, status=215/CPUAFFINITY)
systemd[18400]: worker.service: Failed at step CPUAFFINITY spawning /usr/local/bin/worker: Invalid argument
Связанные ошибки
- status=214/SETSCHEDULER в systemd Код 214/SETSCHEDULER: не удалось применить политику планирования процессора из CPUSchedulingPolicy=. Обычно из-за прав или диапазона приоритета.
- status=242/NUMA_POLICY в systemd Код 242/NUMA_POLICY: не удалось применить политику размещения памяти NUMA из NUMAPolicy= и NUMAMask=.
- Служба работает медленно: упор в CPUQuota Квота процессора ограничивает службу: признаки, как измерить и когда квота вредна.
- status=0/SUCCESS, но служба считается упавшей Программа завершилась успешно, а systemctl показывает inactive или failed. Разбор: Type=simple против forking, RemainAfterExit, демонизация.
- status=1/FAILURE в systemd Код 1/FAILURE означает, что программа запустилась и сама завершилась с ошибкой. Как найти настоящую причину в журнале службы.
- status=126 в systemd: файл не исполняется Код 126: команда найдена, но выполнить её нельзя. Отличие от 127 и от 203/EXEC, разбор причин.
- status=127 в systemd: команда не найдена Код 127 без имени: оболочка не нашла команду. Появляется, когда ExecStart запускает скрипт или sh -c, а внутри команды нет.
- status=2/INVALIDARGUMENT в systemd Код 2/INVALIDARGUMENT: программа сочла аргументы или настройки недопустимыми. Частая причина — лишние кавычки в ExecStart=.
Источники
-
systemd.exec(5)
215 EXIT_CPUAFFINITY: не удалось настроить привязку к процессорам, см. CPUAffinity=. -
Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04)
Воспроизведено с CPUAffinity=0-15 на машине с четырьмя ядрами.