Ich möchte wissen, wie cron funktioniert arbeitet intern. Überprüft der Prozess die aktuelle Zeit in einer Endlosschleife (wodurch kontinuierlich CPU-Zyklen verbraucht werden)? Oder erzeugt eine Funktion einen Interrupt und benachrichtigt den cron Dämon ?
Akzeptierte Antwort:
Ich habe einmal den Vixie-Cron-Quellcode gelesen und musste ins Krankenhaus eingeliefert werden. Wenn Sie jedoch zu einem späteren Zeitpunkt nach „irgendeine Funktion erzeugen einen Interrupt“ suchen, sollten Sie den alarm(2) untersuchen Systemaufruf. Es fordert den Kernel auf, Ihnen das Signal SIGALRM zu senden zu einer festgelegten Zeit, die Sie dann erreichen können. In der Zwischenzeit kann Ihr Prozess etwas anderes tun oder sleep() , wie ich es im Krankenhaus getan habe.