gpt4 book ai didi

linux - 如何让Supervisord读取bash环境变量

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:17:24 25 4
gpt4 key购买 nike

我正在使用 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 list 更新变量值,它可以更新 bash 环境变量但不能更新主 pipe 进程环境变量。

我尝试使用以下方式访问 shell 环境变量:

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

但这导致了一个错误,指出无法扩展字符串。

有什么办法可以读取我的 supervisor.conf 中的 bash 环境变量吗?

额外信息:
我在 raspbian
上运行它Supervisord 在启动时由 systemd 使用/etc/init.d/
中的脚本运行Puppet agent也是由Supervisor运行的,所以无法重启Supervisor服务

最佳答案

您必须在您的变量前加上ENV_。所以尝试使用 %(ENV_MANAGER_URL)s 而不是 %(MANAGER_URL)s

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

关于linux - 如何让Supervisord读取bash环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28112072/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com