如何让 Supervisord 读取 bash 环境变量

如何让 Supervisord 读取 bash 环境变量

我正在使用 Supervisord 运行我的 Java 应用程序,这需要一些环境变量进行配置。我正在设置环境变量/etc/环境

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

我的主管/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-应用程序]部分为:

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

但这对我来说不起作用,因为我需要使用 Puppet manifest 更新变量值,它可以更新 bash 环境变量,但不能更新主管子进程环境变量。

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

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

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

有什么办法可以读取我的 bash 环境变量吗?主管配置文件

额外信息:
我正在运行Raspberry Pi 操作系统
systemd 在启动时使用 /etc/init.d/ 中的脚本运行 Supervisord。Puppet
代理也由 Supervisor 运行,因此它无法重新启动 Supervisor 服务

相关内容