将多个环境变量传递给一个由主管管理的进程

Kol*_*nya 3 environment-variables supervisord

我需要将多个环境变量代理/etc/environment到由supervisor.

以下配置对我有用,supervisor 3.0r1-1supervisor 3.2.0-2报告错误:

environment=FOO=$FOO,BAR=$BAR,BAZ=$BAZ
Run Code Online (Sandbox Code Playgroud)

错误:值中的键/值对意外结束...

一些答案建议引用这些值,但如果我这样做,变量将不会扩展为实际值。

我究竟做错了什么?如何解决?

Jas*_*tin 6

根据http://supervisord.org/configuration.html?highlight=environment,您是否尝试将它们全部放在一行?

environment=A="1",B="2"
Run Code Online (Sandbox Code Playgroud)

(即,=用于environment自身和键值对,以逗号分隔,值以引号括起来)

另外,$FOO 来自哪里?http://supervisord.org/subprocess.html#subprocess-environment说“supervisord 在运行子进程时没有执行 shell”,因此不清楚您期望 $FOO 的工作方式。

  • 我在“/etc/environment”中定义了这些变量。 (2认同)