Por lo general, cron comenzará a las 23:59:00 , escaneará todos sus archivos crontab, filtrará los que sean relevantes para 23:59 y luego inícielos . Escanear estos archivos es muy rápido, porque no hay muchos y todos incluyen solo unas pocas líneas. Por lo general, los cronjobs comienzan a las 23:59:00 o 23:59:01
Hay formas seguras de ralentizar intencionalmente este proceso. (agregue millones de líneas al crontab, por ejemplo). Si el sistema está totalmente sobrecargado, esto tampoco funcionará tan rápido.
Además, esto obviamente depende de la implementación.
Si necesita tiempos de inicio muy exactos, es mejor que cree un programa que duerma hasta el momento que desee y luego se ejecute (por ejemplo, usando c ++ 11 ). Pero en un sistema operativo no en tiempo real, ¡esto tampoco será exacto! ¡Además, el reloj de la PC no sabe la hora exacta!
En todos los casos, esto solo asegura que el programa se inicie en (más o menos) el tiempo que desee. No puede haber ninguna garantía de que el programa finalice con éxito hasta un momento determinado, por lo que creo firmemente que debe cambiar algo en ese requisito.