![如何在程序部分使用supervisord的环境选项?](https://linux22.com/image/566723/%E5%A6%82%E4%BD%95%E5%9C%A8%E7%A8%8B%E5%BA%8F%E9%83%A8%E5%88%86%E4%BD%BF%E7%94%A8supervisord%E7%9A%84%E7%8E%AF%E5%A2%83%E9%80%89%E9%A1%B9%EF%BC%9F.png)
当 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
说“包含非字母数字字符的值应该放在引号中”