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.