У меня есть скрипт на PHP, который печатает переменную окружения, заданную в / etc / environment с помощью getenv.
Он работает нормально, когда я выполняю его вручную, но когда он выполняется супервизором, он не работает.
Я не хочу ставить вручную эту переменную окружения в conf-файл супервизора, я хочу, чтобы она правильно читала / etc / environment.
Любая помощь? заранее спасибо
Как сказано в документации по файлам конфигурации supervisord:
документация конфигурации супервизора
В разделе среда:
Обратите внимание, что подпроцесс будет наследовать переменные среды оболочки, используемые для запуска «supervisord», за исключением переопределенных здесь.
Я предпочитаю, чтобы вы начали наблюдать с помощью systemd.
В этом случае вы можете проверить ваш supervisord.service и в разделе Сервис добавить:
EnvironmentFile=/etc/environment
После выполнения systemctl daemon-reload и systemctl restart supervisord я полагаю, что он должен работать
Вы можете проверить, где находится ваш файл supervisord.service, используя:
systemctl status docker
docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
Я использовал Docker, потому что я не установил супервизор на моей машине разработчика, но это то же самое
getenv получает значение переменной окружения, но не читает значения из файла. Если переменная окружения не установлена для сеанса вашего руководителя, то как getenv может получить это значение?
В своем сеансе введите команду set. Каков вывод этой команды?
В сеансе вашего руководителя введите команду set? Какой выход?
Вы уверены, что переменные окружения для вашего сеанса устанавливаются через / etc / environment?