我有一个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本身使用它。
答案 0 :(得分:1)
我没有理解要保持conf.d
公开的部分(为什么这样做?),但除此之外,请尝试在shell脚本的最后一行使用exec
:
exec ~/src/handybot/bin/hubot -a xmpp
或者你通常可以传递像
这样的env varsABC=2 DEF=3 ~/src/handybot/bin/hubot -a xmpp
我说"通常"只是因为我没有在主管那里测试过它。