我有一个应用程序(部署在docker容器中)通过supervisord进行管理
我的supervisord.conf看起来像这样:
[supervisord]
nodaemon=true
logfile=/var/log/supervisor/supervisord.log
loglevel=INFO
[program:anjay]
priority=1
#USE SOME_CLI for different run configurations
command=/some/binary %(ENV_SOME_CLI)s
stdout_logfile=/dev/fd/1
stderr_logfile=/dev/fd/2
stdout_logfile_maxbytes=0
stderr_logfile_maxbytes=0
autostart=true
autorestart=false
stopsignal=INT
user=root我希望能够使用不同的参数(由SOME_CLI环境变量驱动)重新启动/some/binary
第一次启动应用程序可以完美地工作,参数被扩展。例如:
export SOME_CLI=A
/some/binary A然后我想要export新的SOME_CLI=B,我希望在重启后:
export SOME_CLI=B
/some/binary B不幸的是,仍然有
/some/binary A是否可以通过这种方式使用不同的参数重新启动已配置的应用程序?
如果没有,如何实现这些功能?
备注:我知道我的应用程序部署在容器中,我可以使用不同的参数重新启动容器。这似乎不是正确的做法(重启整个容器只是为了改变一些参数)。
如果我错了,请纠正我
发布于 2018-01-25 21:14:11
将环境变量直接添加到conf文件的program部分,例如:
[program:anjay]
environment=ENV_SOME_CLI=your_value通过使用supervisorctl update通知supervisord该文件中有更改来应用更改。
https://stackoverflow.com/questions/48426721
复制相似问题