SystemdDoctor
служба не работает smack изоляция редкое

status=236/SMACK_PROCESS_LABEL в systemd

Код 236 относится к системам, где вместо SELinux или AppArmor используется SMACK. Он значит, что systemd не сумел выставить процессу метку из SmackProcessLabel=: либо SMACK не включён, либо метка недопустима.

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

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

  1. SMACK не включён в системе

    Без поддержки SMACK в ядре записать метку некуда. На обычных серверных сборках Linux SMACK отсутствует.

  2. Метка недопустима или не разрешена политикой

    Метка должна соответствовать правилам SMACK и быть разрешённой для перехода.

Диагностика

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

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

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

Действующее значение параметра.

systemctl show myapp.service -p SmackProcessLabel

Решение

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

1. SMACK не включён в системе
Почему происходит
Без поддержки SMACK в ядре записать метку некуда. На обычных серверных сборках Linux SMACK отсутствует.
Как проверить
Проверьте наличие подсистемы.
ls -d /sys/fs/smackfs 2>/dev/null || echo "SMACK недоступен"
Как исправить
Уберите SmackProcessLabel= из unit-файла: на системе без SMACK этот параметр только мешает запуску.
2. Метка недопустима или не разрешена политикой
Почему происходит
Метка должна соответствовать правилам 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
    сверено 15 сентября 2026
  • Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04)
    На тестовой машине без SMACK параметр воспроизводимо даёт этот код.
    собственная проверка, systemd 255
    сверено 15 сентября 2026