2015-01-23 4 views
1

Supervisord를 사용하여 구성을위한 환경 변수가 필요한 Java 응용 프로그램을 실행하고 있습니다. 나는 을/etc/환경에서 환경 변수를 설정하고Supervisord가 bash 환경 변수를 읽는 방법

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-app] 섹션의 변수는 다음과 같습니다.

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

하지만 bash 환경 변수를 업데이트 할 수 있지만 관리자 하위 프로세스 환경 변수는 업데이트 할 수없는 Puppet 매니페스트를 사용하여 변수 값을 업데이트해야하므로 저에게 적합하지 않습니다.

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

을하지만이 문자열이 확장 될 수 없다는 오류 결과 :

내가 사용하는 쉘 환경 변수에 접근했습니다.

어쨌든 supervisor.conf에 bash 환경 변수를 읽을 수 있습니까?

추가 정보 :
내가 raspbian
Supervisord에 그것을 실행하고는
인형 에이전트는 또한 있도록 관리자에 의해 실행됩니다에서는 /etc/init.d/에있는 스크립트를 사용 systemd에 의해 시작시 실행됩니다 수퍼바이저 서비스를 다시 시작할 수 없습니다.

+0

왜 다음 init 스크립트를 수정하지 : 그래서 %(ENV_MANAGER_URL)s 대신 %(MANAGER_URL)s

소스를 시도? –

+0

시스템이 원격 위치에 있고 ssh로 연결할 수 없기 때문에 꼭두각시를 사용하여 환경 변수를 업데이트 할 수 있습니다. – Panshul

+0

다시 말하면, Puppet을 사용하여 수정 된 버전의 init 스크립트를 배포해야하는 이유는 무엇입니까? –

답변

관련 문제