Eu gostaria de fazer o trabalho de "check process" da Monit condicionalmente baseado em uma variável env.
Aqui está o pseudo-código do que eu gostaria de alcançar (não uma sintaxe válida de configuração de monit):
[ -n "$run_foo" ] && check process foo ....
Meu caso de uso: Eu tenho uma imagem docker que inicia o processo de monit como este:
CMD ["/bin/monit", "-c","/config/monit.conf"]
Monit então inicia vários daemons.
Agora, gostaria de poder dizer em tempo de execução quais daemons eu quero iniciar em um contêiner específico criado a partir dessa imagem, como este:
docker run --env="run_foo=1;run_bar=1" ...
Estou ciente do monit unmonitor e de argumentos semelhantes, mas acredito que eles não servem ao meu propósito.
Pense em algo assim:
start program="/bin/bash -c '[ -n \"$run_foo\" ] && /bin/foo .."
No entanto, parece que fará com que o monit gire continuamente tentando iniciar e monitorar coisas que não devem ser iniciadas.
Estou ciente da possibilidade de usar diferentes arquivos de configuração de monit ou usando diferentes imagens docker - estas não se qualificam como resposta.
Outras ideias apreciadas.