Iniciar e monitorar processos com CRON

Iniciar e monitorar processos com CRON

Há um aplicativo stub escrito em C. Agora quero executar esse aplicativo periodicamente, digamos às 11h30 diariamente. pensei em usar ocronprocesso, mas não sei como fazê-lo. Por favor ajude.

Também quero ocronpara verificar periodicamente se o aplicativo está funcionando normalmente ou não. Se o aplicativo travar ou travar,crondeve ser capaz de reiniciar o aplicativo dentro de um determinado período de tempo.

Responder1

O Cron serve para executar tarefas agendadas em intervalos programados, e não para cuidar de outros processos.

Você poderia:

  • use algo diferente, como o sistema de script de inicialização do seu sistema operacional host, talvez com um trabalho personalizado inittabque irá reaparecer se morrer.

  • ou hackear algo na forma de um script de shell que é acionado periodicamente por meio de cronverificações em seu script daemon usando algum conjunto de verificações pré-determinadas para saber se ele está funcionando corretamente ou não e, se não, limpar depois dele, então re -lançamentos.

Responder2

Você pode simplesmente fazer uma entrada no seu arquivo crontab

$ crontab -e

terminar então sua entrada de acordo comhttp://www.manpagez.com/man/5/crontab/

[email protected]
30 11 * * * /path/to/your/command

Com a MAILTOentrada você receberá um email se o comando produzir saída em STDERR

Verificar se o processo trava é mais difícil: você deve definir o que quer dizer com trava: roda mais que um determinado tempo? Produz algum comportamento reconhecível?

Você sempre pode ter um segundo processo ou script em execução posteriormente para verificar se o processo ainda está em execução e tomar as medidas apropriadas.

Responder3

Cronitor (https://cronitor.io) foi uma ferramenta que construí exatamente para esse propósito. Basicamente, tudo se resume a ser um farol de rastreamento que usa solicitações HTTP para registrar o início e o fim de um cron job/tarefa agendada.

Um dos benefícios de usar o Cronitor é que você tem a flexibilidade de criar scripts para as solicitações de rastreamento e pode até fazer chamadas que reportarão falhas imediatamente. Com essa flexibilidade você poderia escrever um wrapper para seu aplicativo que reportará falhasetente reiniciar o script quando houver falhas.

informação relacionada