Warum wird Cron veraltet?

21

Ich habe gerade herausgefunden, dass crondas in Mac OS X veraltet ist. Warum ist das so und wird es irgendwann vollständig aus zukünftigen Versionen entfernt?

eckza
quelle

Antworten:

24

Mit der Veröffentlichung von Mac OS 10.4 launchdwurde entschieden, cronMac OS abzulösen. Hier ist eine zwischengespeicherte Version der Startseite von Apple Developer Connection aus dem Jahr 2005. Hier wird erklärt, warum diese Seite cronveraltet ist und welche Vorteile sich launchdaus der Sicht von Apple ergeben.

Die Zusammenfassung: launchdwurde erstellt, um nicht nur zu ersetzen, cronsondern auch init, xinetdum die Leistung und die Kontrolle über die Konfiguration und die eigentlichen Aufgaben zu verbessern.

Der launchdDaemon bietet eine einzige, standardisierte Schnittstelle zu allen Programmen, die vom System automatisch gestartet werden. Darüber hinaus können in den Konfigurationsdateien, die festlegen, wann ein bestimmtes Programm ausgeführt werden soll, Ressourcenbegrenzungen und Umgebungsvariablen angegeben werden, was die Einrichtung und Sicherheit vieler Programme vereinfacht. Das gleiche Konfigurationsdateiformat wird verwendet, unabhängig davon, ob ein Job einmal beim Systemstart oder bei der Benutzeranmeldung, bei Bedarf über das Netzwerk oder in Intervallen gestartet wird.

michaelmichael
quelle
13

Der Wikipedia-Artikel auf launchd bietet eine sehr gute Zusammenfassung, ausführliche Diskussionen sowie einige großartige Videos und externe Links, um einen tieferen Einblick in diese Entscheidung von Apple zu erhalten.

Auf dem Punkt gebracht, launchdersetzt 7 Hauptaufgaben und eine Schiffsladung von Skripten ( inetd , init und rc und zugehörigen Shell - Skript Strukturen, crond , ATD , watchdogd , SystemStarter ) mit einem viel leistungsfähigem Open Source - Tool.

Warum:

  • schneller
  • stärker
  • einheitlich und zentralisiert
  • sicherer

Wann: 29. April 2005 (Als OS X Tiger zum Verkauf freigegeben wurde)

Nichts hindert uns alle daran, launchd zu verwenden, um cron jetzt auf Tiger, Leopard oder Snow Leopard zu starten.

Sollte Apple die Auslieferung zukünftig /usr/sbin/croneinstellen, wird es sicherlich wie Wget und andere ausgereifte Open-Source-Tools enden , die kompiliert werden und als separates Befehlszeilentool hinzugefügt werden müssen.

bmike
quelle
5

Ich weiß nicht einmal, ob Cron veraltet ist. man crontabscheint darauf hinzudeuten, dass dies nicht der Fall ist:

(Anmerkung von Darwin: Obwohl cron (8) und crontab (5) offiziell von Darwin unterstützt werden, wurde ihre Funktionalität in launchd (8) aufgenommen, was eine flexiblere Möglichkeit zur automatischen Ausführung von Befehlen bietet. Weitere Informationen finden Sie in launchctl (1) .)

Im Daemons and Services Programming Guide heißt es, dass es jedoch veraltet ist:

Hinweis: Obwohl es weiterhin unterstützt wird, ist cron keine empfohlene Lösung. Es wurde zugunsten von launchd veraltet.

crontab wird auch von POSIX benötigt und OS X soll SUS-kompatibel sein.

In jedem Fall wird cron wahrscheinlich bald nicht mehr funktionieren, und ich weiß nicht, ob es langsamer oder weniger sicher ist als launchd. Der Cron-Prozess sollte fast keine CPU-Zeit oder Speicher belegen. Einige Vorteile der Verwendung oder des Lernens von cron bestehen darin, dass es auch auf anderen Plattformen verfügbar ist und das Konfigurationsformat einfacher ist.

Lri
quelle