Rocky Linux Rocky Linux

Rocky Linux: при запуске сервиса отсутствует файл окружения

  • Обновлено
  • Чтение ≈ 4 минуты
  • Нужны права администратора

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

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

В этой статье
  1. Когда возникает проблема и к каким системам относится
  2. Основные причины: как отличить одну от другой
  3. Пошаговая диагностика и устранение неисправности
  4. Как убедиться, что неисправность устранена
  5. Если предложенный способ не сработал

#Когда возникает проблема и к каким системам относится

При старте службы systemd не может прочитать EnvironmentFile: он отсутствует, путь неверен или доступ ограничен. Сначала найдите, обязателен ли файл и кто им управляет. Rocky Linux с системными unit systemd, использующими EnvironmentFile=. Речь о локальном файле с настройками приложения, а не об оболочечном ~/.bashrc.

#Основные причины: как отличить одну от другой

Возможная причинаКак узнатьЧто делать
Файл отсутствуетПосле переноса или обновления удалена конфигурацияjournalctl сообщает Failed to load environment filesВернуть файл из штатного источника или исправить путь
Файл читается иначе, чем shell-скриптВ EnvironmentFile формат NAME=VALUE, а не произвольные команды shellОшибка Invalid environment assignmentИсправить конкретную строку без исполнения файла
Ошибки разрешений или SELinuxФайл существует, но служба не может открыть егоnamei/AVC показывают отказВосстановить ожидаемые права и контекст

#Пошаговая диагностика и устранение неисправности

  1. Шаг 1. Найдите имя службы и полный текст ошибкиОткройте терминал администратора. Подставьте реальное имя unit; сообщение может указывать точный путь и причину. Не создавайте пустой файл для обхода ошибки без понимания обязательных переменных.
    Linux · Терминал (Bash)Команда
    Терминал Rocky Linux; административные права не обязательны. Диагностика или адресная проверка; выполните только при соответствии условиям шага.
    UNIT="имя.service"
    systemctl status "$UNIT" --no-pager
    journalctl -b -u "$UNIT" --no-pager -n 90
  1. Шаг 2. Прочитайте EnvironmentFile из реальной конфигурацииsystemctl cat покажет основной unit и переопределения. Символ минуса перед путём (EnvironmentFile=-/path) означает необязательный файл: отсутствие само по себе не должно останавливать службу. Не меняйте минус вслепую.
    Linux · Терминал (Bash)Команда
    Терминал Rocky Linux; административные права не обязательны. Диагностика или адресная проверка; выполните только при соответствии условиям шага.
    UNIT="имя.service"
    systemctl cat "$UNIT"
    systemctl show "$UNIT" -p EnvironmentFiles
  1. Шаг 3. Проверьте существование и доступность каждого каталогаЗамените путь точным значением из EnvironmentFile без ведущего минуса. Если существует символическая ссылка, прочитайте её цель. Права файла и каталогов важны для загрузки.
  2. Терминал Rocky Linux; административные права не обязательны
    Linux · Терминал (Bash)Команда
    Терминал Rocky Linux; административные права не обязательны. Диагностика или адресная проверка; выполните только при соответствии условиям шага.
    ENVFILE="/etc/sysconfig/имя-приложения"
    ls -lZ "$ENVFILE"
    namei -l "$ENVFILE"
    readlink -f "$ENVFILE"
  1. Шаг 4. Определите, откуда должна поступать конфигурацияПроверьте принадлежность файла RPM и поставщика приложения. Если это локально созданный секретный файл — его нет в RPM и восстанавливать нужно из защищённой копии. Не публикуйте содержимое env-файла: в нём могут быть токены и пароли.
  2. Терминал Rocky Linux; административные права не обязательны
    Linux · Терминал (Bash)Команда
    Терминал Rocky Linux; административные права не обязательны. Диагностика или адресная проверка; выполните только при соответствии условиям шага.
    ENVFILE="/etc/sysconfig/имя-приложения"
    rpm -qf "$ENVFILE" || true
    stat -c "%a %U:%G %n" "$ENVFILE"
  1. Шаг 5. Сверьте формат без исполнения файлаВ отличие от .sh, EnvironmentFile не выполняет команды shell. Указывайте NAME=значение по правилам systemd.exec, избегайте подстановок $(...) и export перед именем. Проверяйте текст в безопасном редакторе, не командой source.
  2. Терминал Rocky Linux; нужны административные права
    Linux · Терминал (Bash)С осторожностьюНужен sudo
    Терминал Rocky Linux; нужны административные права. Меняет настройки/состояние службы: сначала копия и возможность отката.
    sudoedit /etc/sysconfig/имя-приложения

    Команда может изменить состояние системы или её настройки. Проверьте параметры и последствия перед запуском.

  1. Шаг 6. Исправьте ссылку в unit через отдельный drop-inЕсли изменилось расположение файла, сохраните прежний unit и используйте systemctl edit; при необходимости сброса списка EnvironmentFile= учитывайте объединение повторов. Если секреты требуется передавать защищённо, используйте штатный механизм credentials, а не мировые права на env-файл.
    Linux · Терминал (Bash)С осторожностьюНужен sudo
    Терминал Rocky Linux; нужны административные права. Меняет настройки/состояние службы: сначала копия и возможность отката.
    sudo systemctl edit имя.service

    Команда может изменить состояние системы или её настройки. Проверьте параметры и последствия перед запуском.

  1. Шаг 7. Перечитайте определения и проверьте реальный запускСначала проверьте наличие файла и правильность пути, затем daemon-reload и перезапустите только одну службу. В журнале не должно появиться нового Failed to load environment files, приложение должно выполнить контрольный запрос.
  2. Терминал Rocky Linux; нужны административные права
    Linux · Терминал (Bash)С осторожностьюНужен sudo
    Терминал Rocky Linux; нужны административные права. Меняет настройки/состояние службы: сначала копия и возможность отката.
    sudo systemctl daemon-reload
    sudo systemctl restart имя.service
    systemctl status имя.service --no-pager

    Команда может изменить состояние системы или её настройки. Проверьте параметры и последствия перед запуском.

#Как убедиться, что неисправность устранена

Служба стартует с необходимыми настройками, EnvironmentFile читается, журнал больше не содержит прежней ошибки; секреты не раскрыты в выводе проверки.

#Если предложенный способ не сработал

Если ошибка остаётся, проверьте путь с пробелами, права, контекст SELinux, формат кавычек по systemd.exec. Верните конфигурацию из копии, не заменяйте реальные настройки пустыми строками.

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

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

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