我定义了多个主管程序,并且它们都定义了相同的环境变量,现在我需要添加一个新的,并且必须将其添加到每个程序部分。有没有办法定义一个对整个主管配置文件有效并且我可以重用的环境变量?例如
/etc/supervisor/conf.d/foo.conf
下的文件:
my_env=foo=2,bar="hi",zee="ok"
[program:foo]
environment=my_env
[program:bar]
environment=my_env
是的,这是可能的。您可以将自定义环境键值添加到 Supervisord 部分,位于
environment
键下方。
environment
格式为 KEY="val",KEY2="val2" 的键/值对列表,将放置在所有子进程的环境中。这不会改变supervisord本身的环境。此选项可以包含值 %(here)s,该值扩展为在其中找到supervisord 配置文件的目录。包含非字母数字字符的值应加引号(例如 KEY="val:123",KEY2="val,456")。否则,引用这些值是可选的,但建议这样做。要转义百分比字符,只需使用两个即可。 (例如 URI="/first%%20name")请注意,子进程将继承用于启动supervisord 的 shell 的环境变量,但此处和程序环境选项中覆盖的变量除外。请参阅子流程环境。
由于您运行了多个主管程序,我相信您需要在每个 .conf 文件的 [supervisord] 部分中指定此环境键值对。