我想使Monit的“检查过程”有条件地基于envvariables工作。
这里是我想达到的伪代码(不是一个有效的监视configuration语法):
[ -n "$run_foo" ] && check process foo ....
我的用例:我有一个docker镜像,像这样开始监视进程:
CMD ["/bin/monit", "-c","/config/monit.conf"]
Monit然后启动各种守护进程。
现在,我希望能够在运行时告诉哪些守护进程我想从这个映像创build的特定容器中启动,如下所示:
docker run --env="run_foo=1;run_bar=1" ...
我知道monit unmonitor和类似的args,但是我相信它们不符合我的目的。
想到这样的事情:
start program="/bin/bash -c '[ -n \"$run_foo\" ] && /bin/foo .."
但是,似乎会导致监控不断尝试启动和监控不应该开始的事情。
我意识到使用不同的监视器configuration文件或使用不同的泊坞窗图像的可能性 – 这些不符合答案。
其他想法赞赏。