Iniciar e monitorar o processo com CRON

1

Há um aplicativo stub escrito em C. Agora, quero executar esse aplicativo periodicamente, digamos às 11h30 diariamente. Pensei em usar o processo cron , mas não sei como fazer isso. Por favor ajude.

Também quero que o cron verifique periodicamente se o aplicativo está sendo executado normalmente ou não. Se o aplicativo travar ou travar, o cron deve poder reiniciar o aplicativo dentro de um determinado período de tempo.

    
por Cron5 03.04.2012 / 08:13

3 respostas

2

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

Você pode:

  • use algo diferente, como o sistema de script de inicialização do seu sistema operacional host, talvez com uma tarefa personalizada em inittab , que irá reaparecer se ela morrer.

  • ou hackear algo juntos na forma de um script de shell que periodicamente é acionado por cron que verifica seu script daemon usando algum conjunto de verificações predeterminadas para saber se ele está sendo executado corretamente ou não, e se não for limpo depois, será reiniciado.

por 03.04.2012 / 13:02
1

Você pode apenas fazer uma entrada no seu arquivo crontab

$ crontab -e

termine a sua inscrição de acordo com o link

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

Com a entrada MAILTO , você receberá um email se o comando produzir uma saída em STDERR

Verificar se o processo trava é mais difícil: você deve definir o que você quer dizer com traps: corre mais do que um certo 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 adequadas.

    
por 03.04.2012 / 08:43
0

O Cronitor ( link ) foi uma ferramenta que criei exatamente para essa finalidade. Basicamente, ele se resume a ser um beacon de rastreamento que usa solicitações http para registrar o início e o fim de uma tarefa agendada / tarefa agendada.

Um dos benefícios de usar o Cronitor é que você tem a flexibilidade de fazer o script das 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 relataria falhas e tentar reiniciar o script quando houver falhas.

    
por 29.12.2016 / 18:02