2012-07-16 3 views
14

나는 Supervisord의 프로그램 섹션에서 환경 변수를 사용하여, 그들은 잘 작동 :Supervisord의 [supervisord] config 섹션에서 환경 변수를 어떻게 사용합니까?

[program:some_prog] 
command=%(ENV_env_var_name)s/... 

나는 [supervisord] 섹션에 동일한 작업을 수행하는 방법에 불구하고 알아낼 수 없습니다.

Traceback (most recent call last): 
    File "/usr/local/bin/supervisord", line 9, in <module> 
    load_entry_point('supervisor==3.0a12', 'console_scripts', 'supervisord')() 
    File "/usr/local/lib/python2.7/dist-packages/supervisor-3.0a12-py2.7.egg/supervisor/supervisord.py", line 356, in main 
    options.realize(args, doc=__doc__) 
    File "/usr/local/lib/python2.7/dist-packages/supervisor-3.0a12-py2.7.egg/supervisor/options.py", line 419, in realize 
    Options.realize(self, *arg, **kw) 
    File "/usr/local/lib/python2.7/dist-packages/supervisor-3.0a12-py2.7.egg/supervisor/options.py", line 284, in realize 
    self.process_config_file() 
    File "/usr/local/lib/python2.7/dist-packages/supervisor-3.0a12-py2.7.egg/supervisor/options.py", line 478, in process_config_file 
    Options.process_config_file(self, do_usage=do_usage) 
    File "/usr/local/lib/python2.7/dist-packages/supervisor-3.0a12-py2.7.egg/supervisor/options.py", line 292, in process_config_file 
    self.read_config(self.configfile) 
    File "/usr/local/lib/python2.7/dist-packages/supervisor-3.0a12-py2.7.egg/supervisor/options.py", line 527, in read_config 
    section.directory = existing_directory(directory) 
    File "/usr/local/lib/python2.7/dist-packages/supervisor-3.0a12-py2.7.egg/supervisor/datatypes.py", line 336, in existing_directory 
    nv = v % {'here':here} 
KeyError: 'var_name' 

그것을 달성하는 방법이 있나요 : 나는 다음과 같은 오류를 ENV_ 접두어 및없이 동일한 구문을 사용하지만, 점점 시도?

답변

9

감독자는 제한된 위치의 환경 변수가있는 확장 만 지원하며, 각 확장은 configuration documentation에 문서화되어 있습니다.

불행히도 [supervisord]directory 옵션은 그 중 하나가 아닙니다. %(here) 변수 만 지원합니다.

중요한 문제가있는 경우 supervisord issue tracker에 기능 요청을 제출할 수 있습니다.

내 프로젝트에서는 배포 및 개발 환경 설정을 예측 가능하고 반복 가능하게 만들고 템플릿에서 수퍼바이저 구성을 생성하기 위해 일반적으로 zc.buildout을 사용합니다. 이 작업을 더 쉽게 수행 할 수있는 specialized buildout recipe이 있습니다.

+0

감사합니다. Martijn. 이미 [supervisord issue tracker] (https://github.com/Supervisor/supervisor/issues/126)에 기능 요청이 열려 있습니다. – syoavc

+0

그래서 있습니다. 기능의 유용성을 설명하기 위해 특정 유스 케이스에 대한 의견을 남길 수도 있습니다. –

+0

2014 년 6 월 이후 기능이 병합되었습니다. 흥미롭게도 릴리스 3.2는 아직 릴리스되지 않았으며 지난 릴리스 이후 1 년이되었습니다. – tutuDajuju

관련 문제