我似乎无法弄清楚如何在监督程序配置中附加到默认路径。
我可以重置路径:
environment=PATH="/home/site/environments/master/bin"
但是当我尝试:
environment=PATH="/home/site/environments/master/bin:$PATH"
我看到主管没有评估$PATH
。
出于某种原因,Google对此并没有太大帮助,我不敢相信我是第一个需要此工具的人。
主管必须对此提供支持,知道这是什么吗?
1
@ascobol nope,我已经硬编码了我需要的路径
—
Prody 2012年
supervisord
不要运行shell来预处理配置文件中的变量,因此您不能使用shell表达式来扩展变量。尽管有一个允许这样做的补丁,%($PATH)
并且它在2011年的邮件列表中进行了讨论,但AFAIK仍未将其包含在主线源代码树中。作为解决方法,您可以创建一个脚本来设置环境并执行参数中提供的命令。然后,您只需运行supervisord
类似的脚本command /usr/local/bin/setup_env_master.sh program_name arguments
外壳包装解决方案有一个很大的缺点-当主管将尝试使用INT或KILL停止进程时,bash脚本将接收该信号,而不是实际的包装程序。这可能导致(在我的情况下)导致悬空过程。
—
stoiczek 2014年
@stoiczek容易解决的问题。在bash脚本末尾使用exec,不要只是定期运行命令。这样
—
CameronNemo 2014年
exec server --args
。您总是会在新贵工作中看到它。