我可以使用 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中测试过。
我有一个 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中测试过。