2012-07-16 13 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オプションはその1つではありません。それは%(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

関連する問題