Описание тега mta
Я пытаюсь передать переменную среды, определенные в текущей оболочке с одним из systemd в
блок я пишу.
DB_URL=шине.Дев.мой_сайт.Ио:8080
Я использую это в скрипт Python, который работает как служба. Мой systemd в
устройство будет работать этот скрипт как полностью использовать переменную для своей работы.
[Блок]
Описание=устройство-CompStatus: вычисляет состояние доступности устройства
[Услуги]
Тип=простой
ExecStart=/usr/Бен/Баш-с "/usr/Бен/Python и opt/deviceCompStatus/deviceCompStatusHandler.py"
Перезагрузить=всегда
[Установите]
WantedBy=по умолчанию.цель
Кстати я использую переменную в скрипт Python будет
если ОС.энвирон.вам('DB_URL') нет ни у кого:
dbEndPoint = "HTTP:// в" + ОС.энвирон['DB_URL']
Проблема заключается я не в состоянии использовать переменную при запуске скрипта в systemd не
. Я посмотрел несколько ресурсов , используя переменные окружения в systemd единиц, это говорит использовать присвоение в разделе [Обслуживание]
прямо как
[Услуги]
Среды=DB_URL=шине.Дев.мой_сайт.Ио:8080
Как вы можете видеть, мой DB_URL
может меняться в зависимости от окружающей среды я развертывание моя машина, это может быть застройщик или производственные установки, в которых URL-адреса будут различаться.
Как я могу сделать это динамически? т. е. пройти все значения доступны для DB_URL
к systemd в
среду?
Я также попытался с помощью EnvironmentFile=
параметр, чтобы определить файл и передать его на обслуживание. Но с той же проблемой снова, моя переменная может быть динамичным и не может быть жестко.
Обновление
После использования опции
импорт-среды systemctl DB_URL
Я могу видеть переменной, доступной в среде systemd в
котором я подтвердил
systemctl шоу-среде
DB_URL=шине.Дев.мой_сайт.Ио:8080
Язык=язык.В UTF-8
Путь=/usr/местные/sbin:/usr/местные/Бен: выполнить/sbin:/usr/Бен
но все равно значение не отражено в языке Python
приложение, которое я запускаю. Это ОС.энвирон('DB_URL')
неправильный способ получить доступ к переменной?