14

私はSupervisordのプログラムセクションで環境変数を使用していますが、それらは問題なく機能します。

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

[監視対象]セクションで同じことを行う方法がわかりません。ENV_プレフィックスがある場合とない場合で同じ構文を使用しようとしましたが、次のエラーが発生します。

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'

それを達成する方法はありますか?

4

1 に答える 1

9

Supervisor は、限られた数の場所で環境変数を使用した拡張のみをサポートします。それぞれの場所については、構成ドキュメントに記載されています。

残念ながら、この[supervisord] directoryオプションはそれらの 1 つではありません。%(here)変数のみをサポートし、他には何もサポートしません。

これが重要な問題である場合は、 supervisord issue trackerで機能リクエストを提出できます。

私のプロジェクトでは、一般的にzc.buildoutを使用して、展開および開発環境のセットアップを予測可能かつ反復可能にし、テンプレートからスーパーバイザー構成を生成します。このタスクを簡単にするための特別なビルドアウト レシピがあります。

于 2012-07-17T07:58:55.253 に答える