Estou usando o Supervisord para executar meu aplicativo java, o que requer algumas variáveis de ambiente para configuração. Estou configurando as variáveis de ambiente em / etc / environment
export MANAGER_URL="http://192.xxx.xxx.xxx:8080/manager/"
export MANAGER_URL2="http://192.xxx.xxx.yyy:8081/manager/"
Meu supervisor / conf.d / myjavaapp.conf se parece com:
[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
Eu sei que posso definir as variáveis de ambiente para a seção [java-app] como:
environment=MANAGER_URL="url1",MANAGER_URL2="url2"
mas isso não funciona para mim, já que preciso atualizar os valores das variáveis usando o manifesto Puppet, que pode atualizar as variáveis do ambiente bash, mas não as variáveis de ambiente do subvisor supervisor.
Eu tentei acessar as variáveis de ambiente do shell usando:
environment=MANAGER_URL=%(MANAGER_URL)s,MANAGER_URL2=%(MANAGER_URL2)s
mas isso resultou em um erro dizendo que as strings não puderam ser expandidas.
Existe alguma maneira de ler as variáveis de ambiente do bash no meu supervisor.conf ?
Extra Info:
Estou executando em raspbian
Supervisord é executado na inicialização pelo systemd usando o script em /etc/init.d/
O agente de marionetes também é executado pelo Supervisor, portanto, não pode reiniciar o serviço do Supervisor
Tags bash puppet linux supervisord