簡體   English   中英

如何使Supervisord讀取bash環境變量

[英]How to make Supervisord read bash environment variables

我正在使用Supervisord運行我的Java應用程序,該應用程序需要一些環境變量進行配置。 我在/ etc / environment中設置環境變量

export MANAGER_URL="http://192.xxx.xxx.xxx:8080/manager/"
export MANAGER_URL2="http://192.xxx.xxx.yyy:8081/manager/"

我的supervisor / conf.d / myjavaapp.conf看起來像:

[supervisord]
nodaemon=false
logfile_maxbytes=100MB
logfile_backups=0

[program:java-app]
command=/usr/bin/java -jar /home/pi/deploy/java-app.jar
stdout_logfile_maxbytes=200MB
stdout_logfile_backups=2
stderr_logfile_maxbytes=100MB
stderr_logfile_backups=0
autostart=true

我知道我可以將[java-app]部分的環境變量設置為:

environment=MANAGER_URL="url1",MANAGER_URL2="url2" 

但這對我不起作用,因為我需要使用Puppet清單更新變量值,該清單可以更新bash環境變量,但不能更新supervisor子流程環境變量。

我嘗試使用以下方法訪問shell環境變量:

environment=MANAGER_URL=%(MANAGER_URL)s,MANAGER_URL2=%(MANAGER_URL2)s

但這導致錯誤,提示無法擴展字符串。

有什么辦法可以在我的supervisor.conf中讀取bash環境變量嗎?

額外信息:
我在樹莓派上運行它
Supervisord在啟動時由systemd使用/etc/init.d/中的腳本運行
Puppet代理也由Supervisor運行,因此它無法重新啟動Supervisor服務

您必須在變量ENV_加上ENV_ 因此,請嘗試使用%(ENV_MANAGER_URL)s而不是%(MANAGER_URL)s

來源: http : //supervisord.org/configuration.html#program-x-section-settings

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM