Супервизор не использует / etc / environment

У меня есть скрипт на PHP, который печатает переменную окружения, заданную в / etc / environment с помощью getenv.

Он работает нормально, когда я выполняю его вручную, но когда он выполняется супервизором, он не работает.

Я не хочу ставить вручную эту переменную окружения в conf-файл супервизора, я хочу, чтобы она правильно читала / etc / environment.

Любая помощь? заранее спасибо

0

Решение

Как сказано в документации по файлам конфигурации 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, потому что я не установил супервизор на моей машине разработчика, но это то же самое

4

Другие решения

getenv получает значение переменной окружения, но не читает значения из файла. Если переменная окружения не установлена ​​для сеанса вашего руководителя, то как getenv может получить это значение?

В своем сеансе введите команду set. Каков вывод этой команды?
В сеансе вашего руководителя введите команду set? Какой выход?

Вы уверены, что переменные окружения для вашего сеанса устанавливаются через / etc / environment?

0

По вопросам рекламы [email protected]