status=236/SMACK_PROCESS_LABEL в systemd
Код 236 относится к системам, где вместо SELinux или AppArmor используется SMACK. Он значит, что systemd не сумел выставить процессу метку из SmackProcessLabel=: либо SMACK не включён, либо метка недопустима.
Вероятные причины
По порядку: сверху то, что встречается чаще.
-
SMACK не включён в системе
Без поддержки SMACK в ядре записать метку некуда. На обычных серверных сборках Linux SMACK отсутствует.
-
Метка недопустима или не разрешена политикой
Метка должна соответствовать правилам SMACK и быть разрешённой для перехода.
Диагностика
Команды идут в том порядке, в котором их стоит выполнять: каждая следующая проверяет то, что осталось после предыдущей.
Показывает шаг SMACK_PROCESS_LABEL и причину.
journalctl -xeu myapp.service --no-pager -n 20Действующее значение параметра.
systemctl show myapp.service -p SmackProcessLabelРешение
Решение своё для каждой причины. Сначала определите, какая из них ваша, — иначе правки наложатся друг на друга.
- Почему происходит
- Без поддержки SMACK в ядре записать метку некуда. На обычных серверных сборках Linux SMACK отсутствует.
- Как проверить
-
Проверьте наличие подсистемы.
ls -d /sys/fs/smackfs 2>/dev/null || echo "SMACK недоступен"
- Как исправить
-
Уберите
SmackProcessLabel=из unit-файла: на системе без SMACK этот параметр только мешает запуску.
- Почему происходит
- Метка должна соответствовать правилам SMACK и быть разрешённой для перехода.
- Как проверить
-
Посмотрите значение и текущие правила.
systemctl show myapp.service -p SmackProcessLabel sudo cat /sys/fs/smackfs/load2 2>/dev/null | head
- Как исправить
- Приведите метку в соответствие с политикой или добавьте нужное правило.
Пример вывода
Метка SMACK на системе без поддержки SMACK. Пример показательный: он собран на тестовой машине специально для этой страницы, а не взят из чужого журнала.
× myapp.service - My application
Active: failed (Result: exit-code) since Mon 2026-09-14 23:47:55 MSK; 1s ago
Process: 25300 ExecStart=/usr/local/bin/myapp (code=exited, status=236/SMACK_PROCESS_LABEL)
systemd[25300]: myapp.service: Failed at step SMACK_PROCESS_LABEL spawning /usr/local/bin/myapp: Operation not supported
Связанные ошибки
- status=229/SELINUX_CONTEXT в systemd Код 229/SELINUX_CONTEXT: не удалось определить или сменить контекст SELinux для процесса службы.
- status=231/APPARMOR в systemd Код 231/APPARMOR: не удалось подготовить смену профиля AppArmor из AppArmorProfile=. Обычно профиль не загружен.
- status=227/NO_NEW_PRIVILEGES в systemd Код 227/NO_NEW_PRIVILEGES: не удалось включить запрет получения новых привилегий. Редкий код, обычно из-за окружения.
- No such file or directory в журнале службы Служба не находит файл или каталог. Разбор: путь, момент запуска, изоляция unit-файла, символические ссылки, приватный /tmp.
- Operation not permitted в журнале службы Операция запрещена: не хватает возможностей процесса, мешает seccomp или модуль безопасности. Отличие от Permission denied.
- Permission denied в журнале службы Отказ в доступе у службы systemd: права на файл, каталоги по пути, пользователь службы, параметры изоляции, SELinux и AppArmor.
- Protocol not supported при создании сокета Ошибка 93: семейство или протокол не поддержаны. Разбор для IPv6, ограничений изоляции и контейнеров.
- Read-only file system в журнале службы Служба не может писать: файловая система только для чтения. Разбор: параметры изоляции unit, монтирование ro, ошибки файловой системы.
Источники
-
systemd.exec(5)
236 EXIT_SMACK_PROCESS_LABEL: не удалось выставить метку SMACK, см. SmackProcessLabel=. -
Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04)
На тестовой машине без SMACK параметр воспроизводимо даёт этот код.