我正在运行一个来自supervisord的应用程序,我必须为它设置一个环境。大约有30个环境变量需要设置。我试着把所有的都放在一个大的
环境=
但那似乎行不通。我也试过多条environment=线,但似乎也不管用。我也尝试过在env值附近使用和不使用'。在
怎样才能使我的环境在监督下保持完好?我应该从一个预先加载环境的shell脚本调用我的实际程序(tornado,fwiw)?理想情况下,我希望将所有的环境变量放入一个include文件中,并用supervisor加载它们,但我愿意用另一种方法来做。在
更新:
以下是我在conf文件中使用的内容:
environment=
PYTHONPATH=/srv/obsf/current/:$PYTHONPATH,
PYTHON_EGG_CACHE=/srv/obfs/current/.python-eggs,
OBFS_API_ENVIRONMENT_STAGE=test,
这种情况持续了大约30行,有很多环境变量。当我执行程序时,它会立即崩溃,抱怨环境变量OBFS_API_environment_STAGE没有设置。在
事实证明,后面的逗号是个问题。我引用了所有的env字符串并删除了后面的逗号。现在一切正常。在
^{} 说明需要将变量列为逗号分隔的键/值对:
^{} 还使用逗号:
在内部,这是使用python^{} lexer 的^{} ,因此它可以正确地处理引用。它还将删除空白,因此为了使内容更具可读性,可以将内容分成多行:
^{pr2}$注意,尾随逗号是可选的;它不会对输出产生影响。在
但是,在KEY1后面缺少逗号可能会导致奇怪的值(上面的例子,减去
whitespace"
后面的逗号将得到{'KEY1': 'Some longer value containing whitespace', '=': ','}
作为环境dict),因为等号要求没有被严格检查。我得补救一下。在相关问题 更多 >
编程相关推荐