Geralmente, o cron inicia às 23:59:00 , verifica todos os seus arquivos crontab, filtra aqueles que são relevantes para 23:59 e os inicia. A verificação desses arquivos é muito rápida, porque não existem muitos e todos incluem apenas algumas linhas. Geralmente, os cronjobs iniciam às 23:59:00 ou 23:59:01
Há maneiras de retardar intencionalmente esse processo. (adicione milhões de linhas ao crontab, por exemplo). Se o sistema estiver totalmente sobrecarregado, isso também não funcionará tão rápido.
Além disso, isso obviamente depende da implementação.
Se você precisar de horários de início muito exatos, é melhor criar um programa que dorme até o tempo que você deseja e depois execute (por exemplo, usando o c ++ 11 ). Mas em um sistema operacional não em tempo real, isso também não será exato! Além disso, o relógio do PC não sabe a hora exata!
Em todos os casos, isso garante apenas que o programa inicie na (mais ou menos) hora que você deseja. Não pode haver garantia de que o programa termine com êxito até um determinado período, por isso acredito firmemente que você deve alterar algo nesse requisito.