Monit e várias ações: encadeando comandos no comando Monit restart?

1

Depois de algumas pesquisas, ocorre que mesmo que eu possa encontrar algumas conversas sobre várias ações ao reiniciar um serviço, também parece que não é realmente possível:

 if failed port 80 and protocol http
     then exec /home/sweet/crazy-stuff.pl
     and restart

Ao declarar o comando de reinicialização para um serviço no arquivo de configuração monitrc , está tudo bem tentar algo assim:

restart program = "perl /home/sweet/crazy-stuff.pl && /etc/init.d/server restart"

Como monit -t não mencione nenhum erro que eu prefiro perguntar antes para fazer coisas ruins.

    
por smonff 07.07.2014 / 20:21

1 resposta

2

você deve usar exec e um subshell bash, por exemplo:

exec "/bin/bash -c '/etc/init.d/server restart && perl /home/sweet/crazy-stuff.pl'"

no entanto, as melhores práticas recomendam o uso de um único script para todas as suas ações (o que significa incluir o comando init.d restart em seu script de shell.

    
por 07.07.2014 / 20:41