systemd Linux

systemd: status=203/EXEC — сервис не запускается

  • Обновлено
  • Чтение ≈ 2 минуты

Краткий ответ

systemd status=203/EXEC появляется, когда служба не может выполнить команду из ExecStart: путь неверен, файл не исполняемый или указан неподходящий интерпретатор. Откройте systemctl status имя.service и journalctl -u имя.service, затем проверьте точный путь ExecStart, права на исполнение и первую строку shebang у скрипта.

В этой статье
  1. Что означает сообщение
  2. Как отличить причины
  3. Пошаговое решение
  4. Что важно перед исправлением

#Что означает сообщение

Сообщение
status=203/EXEC

systemd status=203/EXEC появляется, когда служба не может выполнить команду из ExecStart: путь неверен, файл не исполняемый или указан неподходящий интерпретатор.

#Как отличить причины

Возможная причинаКак узнатьЧто делать
Неверный путьПри диагностике «systemd: status=203/EXEC — сервис не запускается» уточните, какой файл, каталог или запись вызывает отказ, и сравните время её изменения с началом ошибки. Важно сопоставить проверку с исходным симптомом, а не с догадкой.Для случая «systemd: status=203/EXEC — сервис не запускается» исправляйте целевой файл или запись и оставляйте исходник на случай отката. Для проверки результата повторите только прежнее действие.
Нет правУточните, какой пользователь и к какому объекту обращается; проверьте сообщение об отказе, состояние учётной записи и требуемую роль. Учитывайте версию systemd и условия сбоя.Для случая «systemd: status=203/EXEC — сервис не запускается» восстановите конкретное разрешение или штатную процедуру входа. Изменения вносите по одному, с возможностью возврата.
ShebangСравните момент появления признака «Shebang» с тем, когда ранее работала нужная функция. Учитывайте версию systemd и условия сбоя.Исправляйте только подтверждённый фактор «Shebang», сохраняя прежние настройки. Для проверки результата повторите только прежнее действие.
CRLFСравните момент появления признака «CRLF» с тем, когда ранее работала нужная функция. Учитывайте версию systemd и условия сбоя.Исправляйте только подтверждённый фактор «CRLF», сохраняя прежние настройки. Изменения вносите по одному, с возможностью возврата.

#Пошаговое решение

  1. Зафиксируйте ошибку и проверьте условияНа Linux-сервере выполните systemctl status имя.service --no-pager -l и найдите status=203/EXEC, затем systemctl cat имя.service для просмотра фактического ExecStart. Ошибка обычно означает, что systemd не смог запустить указанный исполняемый файл; причины видны в journalctl -u имя.service -b.
  2. Выполните основную проверку и исправлениеПо реальному пути из ExecStart выполните ls -l /путь/к/программе, file /путь/к/программе и проверьте право исполнения и наличие интерпретатора в shebang для сценария. Если файл находится на разделе с noexec, исправляйте архитектуру размещения, а не назначайте всем права 777.
  3. Исключите другие подтверждённые причиныЕсли бинарник существует, но ошибка сохраняется, проверьте путь к интерпретатору, перевод строк CRLF у скрипта, совместимость исполняемого файла и зависимости. Изменяйте unit-файл через systemctl edit или соответствующий исходный файл с резервной копией, не подменяя /usr/bin/bash фиктивным путём.
  4. Проверьте, действительно ли проблема решенаПосле исправления выполните sudo systemctl daemon-reload, затем sudo systemctl start имя.service и systemctl status. Если 203/EXEC исчез, но служба завершилась с другим кодом, исследуйте новую ошибку приложения; не скрывайте её бесконечными перезапусками.

#Что важно перед исправлением

Не выдавайте права 777 исполняемому файлу. Если служба должна работать без root, сохраните ограниченные права её пользователя.

Так эту ошибку тоже называют

Источники и обновления

Последнее обновление статьи: 2 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.