【问题标题】:supervisor program:x command expansion of environment variables $(ENV_VAR)s?主管程序:x 命令扩展环境变量 $(ENV_VAR)s?
【发布时间】:2013-12-17 22:36:52
【问题描述】:

我想将配置(在本例中为站点名称)放入主管 环境变量,用于扩展 program:x 命令参数。这支持吗?文档的措辞似乎表明是的。

以下语法在 supervisor-3.0 上对我不起作用(配置文件摘录):

[supervisord]
environment = SITE="mysite"

[program:service_name]
command=/path/to/myprog/myservice /data/myprog/%(ENV_SITE)s/%(ENV_SITE)s.db %(program_name)s_%(process_num)03d
process_name=%(program_name)s_%(process_num)03d
numprocs=5
numprocs_start=1

引发以下错误:

sudo supervisord -c supervisord.conf                                            

Error: Format string
'/path/to/myprog/myservice /data/myprog/%(ENV_SITE)s/%(ENV_SITE)s.db %(program_name)s_%(process_num)03d'
for 'command' contains names which cannot be expanded

阅读文档,我预计环境变量可用于 程序中的扩展:x 命令为 %(ENV_VAR)s:

http://supervisord.org/configuration.html#program-x-section-values

命令:

"字符串表达式根据包含键的字典进行评估 group_name, host_node_name, process_num, program_name, 这里(目录 supervisord 配置文件),以及所有 supervisord 的环境变量 以 ENV_ 为前缀。”

引入:3.0

相关:

有开放的拉取请求可以在其他部分值中启用扩展:

https://github.com/Supervisor/supervisor/issues?labels=expansions&page=1&state=open

搜索 goole(或 SO)不会返回尝试使用 %(ENV_VAR)s 的示例 命令部分值的扩展:

https://www.google.com/search?q=supervisord+environment+expansion+in+command

【问题讨论】:

    标签: supervisord


    【解决方案1】:

    你做得对;但是,在配置加载期间,无论出于何种原因,在您的 supervisord 部分中定义的 ENV 都不会对进程可用。如果你像这样开始supervisord:

    SITE=mysite supervisord 
    

    它将正确运行并扩展该变量。我不知道为什么 supervisord 在添加到环境并使其可用于子进程的配置扩展时遇到问题。我认为环境变量在子进程内部可用,但在子进程配置声明中扩展变量时不可用。

    【讨论】:

      【解决方案2】:

      我同意主管对此并不清楚(至少对我而言)。

      我找到了执行 /bin/bash -c 的最简单的解决方案。 在您的情况下,它将是:

          command=/bin/bash -c"/path/to/myprog/myservice /data/myprog/${SITE}/${SITE}.db ..."
      

      你怎么看?

      我在这里找到了灵感:http://blog.trifork.com/2014/03/11/using-supervisor-with-docker-to-manage-processes-supporting-image-inheritance/

      【讨论】:

        猜你喜欢
        • 2012-04-08
        • 1970-01-01
        • 2012-10-05
        • 1970-01-01
        • 2018-07-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-09-28
        相关资源
        最近更新 更多