如何在程序部分使用supervisord的环境选项?

如何在程序部分使用supervisord的环境选项?

Supervisord 文档指出

当 Supervisord 运行子进程时,它不会执行任何 shell,因此 USER、PATH、HOME、SHELL、LOGNAME 等环境变量不会从其默认值更改或重新分配。(...)如果您需要为特定程序设置环境变量,而该变量原本可能由特定用户的 shell 调用设置,则必须在 environment=program config 选项中明确执行此操作。

其中包括一个例子,我将其重现如下/etc/supervisor/conf.d/apache2.conf

[program:apache2]
command=/home/chrism/bin/httpd -c "ErrorLog /dev/stdout" -DFOREGROUND
user=chrism
environment=HOME=/home/chrism,USER=chrism

然而,

# supervisorctl reread
ERROR: CANT_REREAD: Unexpected end of key/value pairs

删除 apache2 配置中的“环境”行会导致重新读取时不会出现解析错误。这有什么奇怪的?我在 Debian Squeeze 上使用 3.0a8-1 版的主管,并注意到主线主管是 3.0a10;我找不到environment自 3.0a8 以来已添加的参考资料

答案1

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

说“包含非字母数字字符的值应该放在引号中”

相关内容