我可以用supervisord导入配置文件吗?

时间:2015-01-01 20:32:05

标签: environment-variables supervisor

我有一个Hubot实例,其源代码是公共的,但它需要一些我需要保密的API密钥。

我的服务器配置文件/etc/supervisor/conf.d我也希望保持公开状态,以便其他人可以看到我的配置。结果,我不能写:

[program:hubot]
environment=API_KEY=12345
...

我尝试编写一个不公开的bash包装器脚本,并包含我的秘密API密钥:

#!/bin/bash

export API_KEY=12345
~/src/handybot/bin/hubot -a xmpp

并从主管那里调用它:

[program:hubot]
command=/home/hubot/run_hubot.sh

这样可行,但是hubot进程不受主管监控,只有bash进程监控。因此,如果我supervisorctl restart hubot,我最终会得到两个hubot实例。

是否可以在管理员配置文件中include个其他文件?我还发现了dotenv,但我不得不破坏Hubot本身使用它。

1 个答案:

答案 0 :(得分:1)

我没有理解要保持conf.d公开的部分(为什么这样做?),但除此之外,请尝试在shell脚本的最后一行使用exec

exec ~/src/handybot/bin/hubot -a xmpp

或者你通常可以传递像

这样的env vars
ABC=2 DEF=3 ~/src/handybot/bin/hubot -a xmpp

我说"通常"只是因为我没有在主管那里测试过它。