Monit executa o script na reinicialização

1

Por isso, tenho tentado fazer com que a Monit execute um script no início de um serviço. Embora a Monit não tenha problemas em reiniciar o serviço, é claro que eu quero ser alertado quando o meu serviço precisar ser iniciado, e não apenas quando estiver indefinidamente desativado.

Aqui está o meu arquivo /etc/monit/conf.d/nginx.pid:

check process nginx with pidfile /var/run/nginx.pid
  start program = "/usr/sbin/service nginx start"
  stop  program = "/usr/sbin/service nginx stop"
  if failed host 127.0.0.1 port 8080 then restart
  if changed pid then exec "/etc/monit/slack.rb"
  if failed host 127.0.0.1 port 8080 then exec "/etc/monit/slack.rb" else if succeeded then exec "/etc/monit/slack.rb"
  if cpu is greater than 40% for 2 cycles then exec "/etc/monit/slack.rb" else if succeeded then exec "/etc/monit/slack.rb"
  if cpu > 60% for 5 cycles then restart

Agora, o monit executará meu script slack.rb se eu alterar a porta para uma porta diferente na qual o nginx não está sendo executado (obviamente, não será possível conectar), mas não executará isso quando o nginx for interrompido, mas então começou por monit. O último cenário é o que preciso para trabalhar.

Obrigado por qualquer ajuda!

    
por ambe5960 31.05.2016 / 21:45

1 resposta

1

Eu fiz isso funcionar assim:

check process nginx with pidfile /var/run/nginx.pid
  start program = "/usr/sbin/service nginx start"
  stop  program = "/usr/sbin/service nginx stop"
  IF does not exist THEN restart ELSE IF SUCCEEDED THEN exec "/etc/monit/slack.rb"
  IF failed host 127.0.0.1 port 8080 THEN restart ELSE IF SUCCEEDED THEN exec "/etc/monit/slack.rb"
    
por 09.08.2016 / 09:08