Monit durante a reinicialização

1

Estamos vendo um problema ao usar o monitor durante uma seqüência de reinicialização ou desligamento. Primeiro alguns antecedentes da parte da configuração do monit.

  1. A versão da monit é de 5,5
  2. O Monit é iniciado a partir do inittab como null :: respawn: / usr / bin / monit –Ic / etc / monitrc
  3. O Monit é configurado para verificar serviços a cada 30 segundos.
  4. A Monit está monitorando certos aplicativos personalizados e os reinicia, se eles não estiverem em execução, chamando o script de inicialização desse aplicativo personalizado específico.
  5. Os aplicativos têm seu próprio script de inicialização na pasta /etc/init.d/ que são iniciados na inicialização. O Monit é iniciado depois que esses scripts de inicialização são executados no inittab.

Agora para o problema:

Durante um desligamento / reinicialização do sistema, primeiro um comando é enviado para monitorar a interrupção do monitoramento de todos os serviços. Depois disso, todos os scripts de kill em /etc/init.d/ são chamados. Na maioria das vezes funciona, mas há um caso de canto em que o monit inicia um aplicativo quando o aplicativo já está encerrado normalmente, o que está errado. Eu tentei capturar o problema no diagrama de Sequência abaixo.

Eu olhei para o código-fonte monit e parece que quando a verificação de um serviço falha, o monit tenta executar o comando mencionado ao bifurcá-lo e executá-lo. Portanto, esse processo bifurcado ainda pode estar em andamento quando monit recebe um comando unmonitor. Também parece que o monit não para os processos iniciados quando recebe este comando e retorna imediatamente.

Existe uma maneira de esperar até que todos os processos filhos iniciados por monit estejam completos?

Alguma outra recomendação para evitar esse problema?

    
por Shankar SM 17.11.2016 / 19:01

0 respostas