SystemdDoctor
служба не работает lsb reload

status=3/NOTIMPLEMENTED в systemd

Код 3 значит «действие не реализовано». В unit-файлах он появляется, когда службе приказывают то, чего она не умеет: чаще всего перезагрузку настроек через ExecReload=, которую программа не поддерживает.

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

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

  1. Служба не умеет перезагружать настройки

    Не всякая программа умеет перечитывать файл настроек по сигналу. Обёртка отвечает, что действие не поддерживается, и возвращает 3.

  2. Обёртка запускается с неподдерживаемым аргументом

    Init-скрипты понимают ограниченный набор команд. Аргумент вроде status или try-restart может быть не реализован.

Диагностика

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

Показывает, какой шаг вернул код 3.

systemctl status myapp.service -l --no-pager

Умеет ли служба перезагружать настройки с точки зрения systemd.

systemctl show myapp.service -p ExecReload -p CanReload

Решение

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

1. Служба не умеет перезагружать настройки
Почему происходит
Не всякая программа умеет перечитывать файл настроек по сигналу. Обёртка отвечает, что действие не поддерживается, и возвращает 3.
Как проверить
Посмотрите, задан ли ExecReload= и что он вызывает.
systemctl cat myapp.service | grep -i execreload
Как исправить
Либо уберите ExecReload= и перезапускайте службу целиком, либо укажите настоящий способ: обычно это сигнал HUP главному процессу.
ExecReload=/bin/kill -HUP $MAINPID
2. Обёртка запускается с неподдерживаемым аргументом
Почему происходит
Init-скрипты понимают ограниченный набор команд. Аргумент вроде status или try-restart может быть не реализован.
Как проверить
Посмотрите, с каким аргументом вызывается обёртка.
systemctl cat myapp.service | grep -E "^Exec"
Как исправить
Замените вызовы обёртки прямыми командами в unit-файле: systemd умеет останавливать и перезапускать процессы сам.

Пример вывода

Попытка перезагрузить настройки службы, которая этого не умеет. Пример показательный: он собран на тестовой машине специально для этой страницы, а не взят из чужого журнала.

× myapp.service - My application
     Active: failed (Result: exit-code) since Mon 2026-09-15 12:40:07 MSK; 1s ago
    Process: 10600 ExecReload=/usr/sbin/myapp-wrapper reload (code=exited, status=3/NOTIMPLEMENTED)

myapp-wrapper[10600]: reload is not supported
systemd[1]: myapp.service: Control process exited, code=exited, status=3/NOTIMPLEMENTED

Связанные ошибки

  • status=7/NOTRUNNING в systemd Код 7/NOTRUNNING по соглашению LSB: программа не запущена. Обычно приходит от ExecStop или ExecReload, а не от запуска.
  • status=1/FAILURE в systemd Код 1/FAILURE означает, что программа запустилась и сама завершилась с ошибкой. Как найти настоящую причину в журнале службы.
  • signal=HUP (status=1/HUP) в systemd Процесс службы завершён сигналом HUP. Обычно это перезагрузка настроек, которую программа поняла как команду выйти.
  • status=4/NOPERMISSION в systemd Код 4/NOPERMISSION: программа сообщила о недостатке прав. По соглашению LSB это «у пользователя недостаточно привилегий».
  • status=5/NOTINSTALLED и status=6/NOTCONFIGURED в systemd Коды 5 и 6 по соглашению LSB: программа не установлена или не настроена. Что это значит на практике и как проверить.
  • status=0/SUCCESS, но служба считается упавшей Программа завершилась успешно, а systemctl показывает inactive или failed. Разбор: Type=simple против forking, RemainAfterExit, демонизация.
  • status=126 в systemd: файл не исполняется Код 126: команда найдена, но выполнить её нельзя. Отличие от 127 и от 203/EXEC, разбор причин.
  • status=127 в systemd: команда не найдена Код 127 без имени: оболочка не нашла команду. Появляется, когда ExecStart запускает скрипт или sh -c, а внутри команды нет.

Источники

  • systemd.exec(5)
    Класс LSB: код 3 — действие не реализовано.
    официальная документация, systemd 255
    сверено 15 сентября 2026
  • systemd.service(5)
    ExecReload= и подстановка $MAINPID.
    официальная документация, systemd 255
    сверено 15 сентября 2026
  • Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04)
    Воспроизведено на обёртке без поддержки reload.
    собственная проверка, systemd 255
    сверено 15 сентября 2026