Voglio sapere come cron lavora internamente. Il processo continua a controllare l'ora corrente in un ciclo while infinito (consumando così continuamente cicli della CPU)? Oppure qualche funzione genera un interrupt e notifica il cron demone?
Risposta accettata:
Una volta ho letto il codice sorgente di vixie-cron e ho dovuto essere ricoverato in ospedale. Tuttavia, se stai cercando "qualche funzione genera un interrupt" in futuro, dovresti indagare su alarm(2) syscall. Chiede al kernel di inviarti il segnale SIGALRM a un'ora programmata, che puoi quindi prendere. Nel frattempo, il tuo processo può fare qualcos'altro, o sleep() , come ho fatto in ospedale.