n1ro°
RU

Ошибки · Решение

Linux errno ENOEXEC: что означает и как исправить

Файл найден, но ядро не может выполнить его как исполняемый формат.

Редакция N1RO · Проверено

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

В Linux errno ENOEXEC означает «Exec format error». Сначала найдите системный вызов, который вернул код, затем проверяйте условия именно этой операции. Числовое значение errno не следует считать переносимым между архитектурами: ориентируйтесь на символическое имя.

Что означает ошибка

Файл найден, но ядро не может выполнить его как исполняемый формат.

Возможные причины

  • Бинарник собран для другой архитектуры.
  • У скрипта отсутствует корректный shebang или указан несуществующий интерпретатор.
  • Файл повреждён или имеет неподдерживаемый executable format.

Что проверить

  • Выполните file для проблемного исполняемого файла и сравните архитектуру с системой.
  • Проверьте первую строку скрипта и путь интерпретатора после #!.
  • Убедитесь, что файл не был повреждён при копировании или распаковке.

Безопасные шаги

  1. Установите сборку для правильной архитектуры.
  2. Исправьте shebang на существующий интерпретатор.
  3. Пересоберите или заново получите повреждённый executable.

Только безопасные обратимые действия. Опасные шаги — только по официальной инструкции и с пониманием рисков.

Когда нужен сервис

  • Если errno ENOEXEC воспроизводится после проверки системного вызова и окружения, приложите strace-фрагмент, путь/ресурс и kernel log владельцу соответствующего subsystem.

Похожие ошибки

  • /errors/linux-errno-esrch/
  • /errors/linux-errno-eintr/
  • /errors/linux-errno-eio/

Что учитывать

Точная причина зависит от версии ПО/прошивки, полного текста ошибки и контекста. Официальная инструкция имеет приоритет.

Официальный источник

Расшифровка сверена с официальными страницами поддержки из источников ниже. Редакция N1RO не диагностировала ваш конкретный случай.