status=211/IOPRIO в systemd
Код 211/IOPRIO появляется, когда systemd не сумел применить приоритет дискового ввода-вывода. Причины те же, что и у приоритета процессора: недостаточно прав для класса реального времени либо значение вне допустимого диапазона.
Вероятные причины
По порядку: сверху то, что встречается чаще.
-
Класс
realtimeбез нужных правКласс ввода-вывода realtime требует CAP_SYS_ADMIN. Служба без этой возможности получает отказ.
-
Приоритет вне диапазона
IOSchedulingPriority=принимает значения от 0 до 7. Другие числа отвергаются. -
Планировщик ввода-вывода не поддерживает приоритеты
Приоритеты учитывает не каждый планировщик: на устройстве с
noneилиmq-deadlineони могут не применяться, а в некоторых окружениях вызов и вовсе отказывает.
Диагностика
Команды идут в том порядке, в котором их стоит выполнять: каждая следующая проверяет то, что осталось после предыдущей.
Показывает шаг IOPRIO и причину отказа.
journalctl -xeu myapp.service --no-pager -n 20Действующие значения обоих параметров.
systemctl show myapp.service -p IOSchedulingClass -p IOSchedulingPriorityРешение
Решение своё для каждой причины. Сначала определите, какая из них ваша, — иначе правки наложатся друг на друга.
realtime без нужных прав- Почему происходит
- Класс ввода-вывода realtime требует CAP_SYS_ADMIN. Служба без этой возможности получает отказ.
- Как проверить
-
Посмотрите класс и возможности.
systemctl show myapp.service -p IOSchedulingClass -p CapabilityBoundingSet
- Как исправить
-
Смените класс на
best-effort— для служб это почти всегда достаточно, — либо оставьте CAP_SYS_ADMIN.
- Почему происходит
IOSchedulingPriority=принимает значения от 0 до 7. Другие числа отвергаются.
- Как проверить
-
Проверьте значение.
systemctl show myapp.service -p IOSchedulingPriority
- Как исправить
- Поставьте число от 0 до 7: 0 — самый высокий приоритет внутри класса, 7 — самый низкий.
- Почему происходит
- Приоритеты учитывает не каждый планировщик: на устройстве с
noneилиmq-deadlineони могут не применяться, а в некоторых окружениях вызов и вовсе отказывает.
- Как проверить
-
Посмотрите планировщик для нужного устройства.
cat /sys/block/sda/queue/scheduler
- Как исправить
- Либо смените планировщик на bfq, где приоритеты работают, либо уберите параметры приоритета ввода-вывода из unit-файла.
Пример вывода
Запрошен класс realtime без CAP_SYS_ADMIN. Пример показательный: он собран на тестовой машине специально для этой страницы, а не взят из чужого журнала.
× backup.service - Nightly backup
Active: failed (Result: exit-code) since Mon 2026-09-14 02:10:05 MSK; 1s ago
Process: 16220 ExecStart=/usr/local/bin/backup (code=exited, status=211/IOPRIO)
systemd[16220]: backup.service: Failed at step IOPRIO spawning /usr/local/bin/backup: Permission denied
Связанные ошибки
- status=201/NICE в systemd Код 201/NICE: systemd не смог выставить приоритет процесса из Nice=. Обычно мешает предел LimitNICE или отсутствие прав.
- status=214/SETSCHEDULER в systemd Код 214/SETSCHEDULER: не удалось применить политику планирования процессора из CPUSchedulingPolicy=. Обычно из-за прав или диапазона приоритета.
- status=218/CAPABILITIES в systemd Код 218/CAPABILITIES: не удалось применить набор возможностей процесса из CapabilityBoundingSet= или AmbientCapabilities=.
- AppArmor: apparmor="DENIED" в журнале ядра Профиль AppArmor запретил операцию: как прочитать запись, найти профиль и поправить его правильно.
- Caddy не занимает порты 80 и 443 без прав Служба падает при открытии слушателя: нет возможности занимать привилегированные порты.
- Configuration file is marked executable Предупреждение о правах: unit-файл помечен исполняемым. Откуда берётся и почему это стоит исправить.
- Configuration file is marked world-inaccessible Предупреждение о правах на unit-файл: служба работает, но файл недоступен для чтения другим.
- Interactive authentication required при управлении службой systemctl требует аутентификации: обращение от непривилегированного пользователя через polkit. Как разрешить точечно.
Источники
-
systemd.exec(5)
211 EXIT_IOPRIO: не удалось настроить приоритет ввода-вывода. -
Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04)
Воспроизведено с IOSchedulingClass=realtime при пустом CapabilityBoundingSet.