Hay una aplicación auxiliar escrita en C. Ahora quiero ejecutar esta aplicación periódicamente, digamos a las 11:30 a. m. todos los días. Pensé en usar elcronproceso pero no se como hacerlo. Por favor ayuda.
También quiero elcronpara comprobar periódicamente si la aplicación se está ejecutando normalmente o no. Si la aplicación falla o se bloquea,cronDebería poder reiniciar la aplicación dentro de un cierto período de tiempo.
Respuesta1
Cron es para ejecutar tareas programadas a intervalos programados, no para cuidar otros procesos.
Podrías:
use algo diferente, como el sistema de script de inicio de su sistema operativo host, tal vez con un trabajo personalizado que
inittab
reaparecerá si muere.o piratear algo en forma de un script de shell que se activa periódicamente y que
cron
verifica el script de su demonio utilizando un conjunto de comprobaciones predeterminadas para determinar si se está ejecutando correctamente o no, y si no, se limpia después y luego se vuelve a ejecutar. -lanzamientos.
Respuesta2
Puedes simplemente hacer una entrada en tu archivo crontab
$ crontab -e
finalice entonces su entrada segúnhttp://www.manpagez.com/man/5/crontab/
[email protected]
30 11 * * * /path/to/your/command
Con la MAILTO
entrada, recibirá un correo electrónico si el comando produce una salida en STDERR.
Comprobar si el proceso se bloquea es más difícil: debes definir qué quieres decir con bloqueos: ¿se ejecuta más de un tiempo determinado? ¿Produce algún comportamiento reconocible?
Siempre puede ejecutar un segundo proceso o secuencia de comandos más adelante para comprobar si el proceso todavía se está ejecutando y tomar las medidas adecuadas.
Respuesta3
cronista (https://cronitor.io) fue una herramienta que construí exactamente para este propósito. Básicamente se reduce a ser una baliza de seguimiento que utiliza solicitudes http para registrar el inicio y el final de un trabajo cron/tarea programada.
Uno de los beneficios de usar Cronitor es que tiene la flexibilidad de programar las solicitudes de seguimiento e incluso puede realizar llamadas que informarán fallas de inmediato. Con esta flexibilidad, posiblemente podría escribir un contenedor para su aplicación que informará fallas.yIntente reiniciar el script cuando haya errores.