Como fazer com que Supervisord leia variáveis de ambiente bash [closed]

3

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

    
por Panshul 24.01.2015 / 12:23

0 respostas