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

Can I import configuration files with supervisord?

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

我的服务器配置文件/etc/supervisor/conf.d我也想保留public,这样别人就可以看到我的配置了。结果写不出来:

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

我已经尝试编写一个 bash 包装脚本,它不是 public 并且包含我的秘密 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 supervisor 配置文件中的其他文件?我也找到了 dotenv 但我必须破解 Hubot 本身才能使用它。

我不明白想要保留 conf.d public 的部分(为什么要这样做?),但除此之外,尝试在最后一行使用 exec shell 脚本:

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

或者,您通常可以传递环境变量,例如

ABC=2 DEF=3 ~/src/handybot/bin/hubot -a xmpp

我说"usually"只是因为我没有在supervisor中测试过。