Betriebssysteme ermöglichen die einfache Nutzung von Computern und anderen digitalen Geräten. Am Apple Mac kommt macOS zum Einsatz, am iPhone ist es iOS. Damit das Ganze funktioniert, gibt es sichtbare Oberflächen, Interaktionsmöglichkeiten und Programme, aber auch im Hintergrund laufende und damit nicht sichtbare Prozesse, Systemdienste und Skripte. Einen Teil dieser Hintergrundaufgaben stellt die Zeitplanung dar, welche bestimmte Systemaufgaben und Wartungsprozesse automatisch startet, kontrolliert und beendet. Eine der ersten Unix-basierten Zeitplanungen hieß Cron. Diese eignet sich heute noch für Server. Auf Computern kommen eher Anacron oder Systemd zum Einsatz – unter macOS ist es Launchd.
Kapitel in diesem Beitrag:
- 1 Cron: Die Anfänge der Zeitplanung am Computer
- 2 Was ist ein Cronjob?
- 3 Was ist ein(e) Crontab?
- 4 Anacron: Verpasste Aufgaben werden einfach nachgeholt
- 5 Systemd: Initialisierungssystem, Zeitplanung und mehr in einem
- 6 Launchd: init-System seit Mac OS X 10.4 Tiger
- 7 Launchd am Mac: Schnelleres Starten und effizientere Systeme
- 8 Die Rolle von plist-Dateien beim Einsatz von Launchd
- 9 Zusammenfassung zum Thema
- 10 Meine Tipps & Tricks rund um Technik & Apple
- 11 Ähnliche Beiträge
Cron: Die Anfänge der Zeitplanung am Computer
Cron (vom griechischen „chronos“ für „Zeit“) war lange Zeit das Standardwerkzeug für die Zeitplanung in Unix-ähnlichen Betriebssystemen. Ursprünglich in den 1970er Jahren entwickelt, ermöglichte es Cron den Nutzer/innen vom Computern, Aufgaben zu definieren, die zu bestimmten Zeiten, an bestimmten Tagen bzw. in vordefinierten Intervallen ausgeführt werden sollten.
Dies reichte von Systemwartungsaufgaben bis hin zu Benachrichtigungen und Berichterstellungen (Log-Erzeugung). Cron erfüllte lange Zeit seinen Zweck, hatte jedoch auch seine Einschränkungen. Zum Beispiel musste ein User eingeloggt sein, damit Cron laufen konnte. Heute kommt Cron noch auf Servern zum Einsatz, da es sich sehr gut für dauerhaft laufende Systeme eignet.
Was ist ein Cronjob?
Ein Cronjob ist eine Aufgabe (englisch „Job“), die von der Cron-Zeitplanung geplant und ausgeführt wird. Es handelt sich also um einen zeitbasiert ausgeführten Prozess, ein Programm oder ein Skript. Ein Cronjob kann sowohl vom System, als auch von einer App oder vom User festgelegt werden, um bestimmte Zeitpunkte für einzelne Aufgaben abzupassen oder einen Befehl in einem bestimmten Intervall immer wieder auszuführen. Als Anwendungsbeispiele sind hier die Systemwartung, das Sichern von Daten, die Erstellung von Berichten (Log-Dateien) sowie die Bereinigung von Datenbanken zu nennen.
Was ist ein(e) Crontab?
Um Cronjobs festzulegen und zu planen, gibt es das oder die Crontab („Tab“ steht für Tabelle). Es handelt sich in Unix-basierten Betriebssystemen um eine Konfigurationsdatei, die als eine Art Zeitübersicht oder Stundenplan angesehen werden kann. In der Crontab-Übersicht werden für einzelne Befehle, Prozesse, Skripte, Apps und dergleichen die Ausführungszeitpunkte mit verschiedenen Daten festgelegt – Monat, Tag des Monats, Wochentag, Stunde, Minute und / oder andere. Die Crontab-Tabelle lässt sich in der Kommandozeile bzw. im Terminal anzeigen und bearbeiten. Dafür stehen verschiedene crontab-Befehle bereit.
Die Crontab-Tabelle besteht aus sechs Spalten, von welchen die letzte für den auszuführenden Befehl in Anspruch genommen wird. Die fünf Spalten vor dem Befehl legen für selbigen den Zeitpunkt der Ausführung fest, sodass beim dauerhaften Auslesen der Tabelle der erreichte Zeitpunkt erkannt und am Ende der Zeile der Befehl ausgeführt werden kann. Die fünf Zeitplanungsspalten sind im Regelfall folgendermaßen aufgeteilt:
- Minute (0-59): Die Minute innerhalb einer Stunde, zu der die Aufgabe ausgeführt werden soll.
- Stunde (0-23): Die Stunde des Tages, zu der die Aufgabe ausgeführt werden soll.
- Tag des Monats (1-31): Der Tag im Monat, an dem die Aufgabe ausgeführt werden soll.
- Monat (1-12): Der Monat, in dem die Aufgabe ausgeführt werden soll.
- Wochentag (0-6): Der Wochentag (Sonntag bis Samstag), an dem die Aufgabe ausgeführt werden soll; der Wert 7 kann ebenfalls genutzt werden, um den Sonntag zu repräsentieren (also Aufteilung der Woche von 1-7).
Modernere Lösungen wie Anacron, Systemd und Launchd sind meist abwärtskompatibel mit Cronjobs und Crontab, sodass diese Unix-Technologien weiterhin mit den entsprechenden Terminal-Befehlen für die manuelle Zeitplanung genutzt werden können.
Anacron: Verpasste Aufgaben werden einfach nachgeholt
Anacron wurde als erweiterte Cron-Technologie entwickelt, um einige Schwächen von Cron auszubügeln – z. B. die Abhängigkeit von einem aktiven User. Bei vielen Aufgaben, die zu festen Zeiten ausgeführt werden sollten, bestand zudem das Risiko, dass sie ganz einfach verpasst wurden, wenn der entsprechende User nicht eingeloggt war.
Anacron löste dieses Problem, indem es Aufgaben so anpasste, dass sie auch nach dem Verpassen noch ausgeführt werden konnten. Es wurden dafür vergangene Aufgaben abgefragt und geschaut, ob sie ein Ergebnis geliefert bzw. in einem Log vermerkt wurden. War dies nicht der Fall, wurden sie nachgeholt. Anacron ist daher nützlich für Computer und Laptops, die nicht dauerhaft laufen.
Systemd: Initialisierungssystem, Zeitplanung und mehr in einem
Der Name Systemd setzt sich aus „System“ für das Betriebssystem und „d“ als Kürzel für Daemon zusammen. Bei einem Daemon handelt es sich um einen Hintergrundprozess (hier mehr dazu: Was ist ein Daemon?). Systemd ist aber mehr als nur ein einzelner Hintergrundprozess, es beinhaltet ein sogenanntes init-System. Das Kürzel init steht dabei für „Initialisierung“ und deutet darauf hin, dass es hier um den Start des Betriebssystems und das Laden von dafür notwendigen Prozessen, Diensten und Ressourcen geht.
Oder kurz beschrieben: Systemd ist eine Sammlung von Prozessen, die den Betrieb eines Systems sichert und dafür verschiedene Zeitplanungen und Regelmäßigkeiten bietet. An oberster Stelle steht dabei der Systemd-init-Prozess, der als erstes aufgerufen wird (Prozess-ID 1) sowie den Start, die Überwachung und das Beenden von weiteren Prozessen, meist von im Hintergrund laufenden Daemons, steuert. Weitere Systemd-Komponenten bieten Crontab-Fähigkeiten, sorgen für das Anlegen von Log-Dateien und einiges mehr.
Die kürzeste Zusammenfassung liefert der Wikipedia-Eintrag zum Thema: „systemd ist der Daemon, der das System startet und betreut.“
Launchd: init-System seit Mac OS X 10.4 Tiger
Bis einschließlich Mac OS X 10.3 Panther aus 2003 setzte Apple am Mac auf den standardmäßigen init-Prozess für den Systemstart und auf Cron für die Zeitplanung des Systems. Seit Mac OS X 10.4 Tiger, welches von 2005 bis 2007 den Umstieg von PowerPC-Macs zu Modellen mit Intel-Prozessoren begleitete, kommt allerdings Launchd als Sammlung von Initialisierungsprozessen und der Zeitplanung zum Einsatz. Der Launchd-Daemon ist durchaus vergleichbar mit Systemd und stellt ebenfalls ein Framework für die Verwaltung weiterer Daemons und Aufgaben zur Verfügung. Launchd setzt sich dabei aus „Launch“ für den Start des Systems und „d“ für Daemon(s) zusammen.
Ähnlich wie Systemd in anderen Unix-basierten Systemen ist Launchd an Computern mit macOS auch für den Systemstart, also für den Boot-Vorgang, verantwortlich. Somit wird Launchd ebenfalls die Prozess-ID 1 zugeordnet. Darüber hinaus läuft dieser übergeordnete Daemon nebst den von ihm gestarteten Daemons und anderen Hintergrundaufgaben während das Betriebssystem aktiv ist und genutzt wird. Man kann sich das Anschalten des Computers und die Nutzung des Betriebssystems ganz stark vereinfacht als einen vierstufigen Ablauf vorstellen, der sich folgendermaßen gliedert:
- Die Firmware wird geladen, um die Hardware zu überprüfen und für die Nutzung zu aktivieren.
- Der Kernel und seine Erweiterungen werden geladen, und anschließend wird vom Kernel Launchd aktiviert.
- Launchd wird gestartet und durchsucht die Daemon-Verzeichnisse des Systems und der User, was das Laden der individuellen Einstellungen zur Folge hat. Anschließend wird das Anmelde-Fenster gezeigt.
- Während der Mac eingeschaltet ist (und ggf. macOS aktiv genutzt wird) führt Launchd entsprechend der plist-Dateien von System und Usern sowie der Crontab bestimmte Hintergrundprozesse und Cronjobs aus.
Launchd am Mac: Schnelleres Starten und effizientere Systeme
Launchd bewältigt aber auch noch weitere komplexe Aufgaben. So wurde es von Apple auf eine ressourcenschonende Effizienz hin entworfen. Praktisch ausgedrückt heißt das unter anderem, dass beim Systemstart und beim User-Login erst einmal nur die dafür nötigen Daemons geladen werden. Andere Daemons werden erst dann geladen, wenn sie wirklich gebraucht werden.
So kann etwa für Netzwerk-Daemons der „OnDemand“-Schlüssel vergeben werden, sodass Launchd sie erst dann lädt, wenn sie für eine Netzwerk-Anfrage benötigt werden („on demand“ = bei Bedarf). Das Ergebnis ist, dass die Betriebssysteme mit Launchd tendenziell schneller bzw. flüssiger laufen. Das ermöglicht u. U. eine Kompatibilität mit älterer, langsamerer Hardware.
Die Rolle von plist-Dateien beim Einsatz von Launchd
Wie oben schon angemerkt, so lädt Launchd am Apple Mac bestimmte Einstellungen, Konfigurationen und Daemons für die Aufgabenbewältigung. Geladen werden sie unter anderem aus System-Verzeichnissen (z. B. /System/Library/LaunchDaemons), welche bestimmte Eigenschaften und Aufgaben des jeweiligen Betriebssystems vorgeben. Aber auch aus User-Verzeichnissen (z. B. /Library/LaunchDaemons), welche die individuellen Einstellungen, Konfigurationen, Erweiterungen und Anmeldeobjekte der Nutzer/innen enthalten.
Sie werden jeweils in einer Property List, kurz plist, gespeichert. Die plist-Dateien in den genannten sowie weiteren Verzeichnissen unter macOS dienen also u. a. der Individualisierung des Systems und der Ausführung von Hintergrundprozessen. Neben direkt sichtbaren Auswirkungen dienen sie auch der Indexierung von Inhalten (z. B. für Spotlight) oder für Bluetooth-Einstellungen. Weisen sie Fehler auf, kann es zu Problemen kommen. Deshalb raten manche Anleitungen für die Problemlösung am Mac zum Löschen bestimmter plist-Dateien.
Weitere Informationen gibt es in Beiträgen von Jens:
- Was sind .plist-Dateien am Mac? (2023)
- Was sind plist-Dateien am Mac und kann ich sie löschen und konvertieren? (2021)
Zusammenfassung zum Thema
Eigentlich wollte ich nur einen Beitrag zu Cron, Cronjobs und Crontab schreiben. Aber diese Unix-Technologien für die Zeitplanung kommen gar nicht mehr in ihrer ursprünglichen Form am Apple Mac zum Einsatz. Deshalb habe ich die Entwicklung der darauf aufbauenden Zeitplanungsdaemons aufgezeigt. Von Anacron über Systemd führte der Weg dann zu Launchd, welches nun schon seit längerem unter Mac OS X, OS X und macOS zum Einsatz kommt. Ich hoffe, dass ich euch die Funktionalität von Launchd sowie den Zusammenhang mit dem System, einzelnen User-Accounts und plist-Dateien verständlich erklären konnte.
Hier noch einige Quellen für die weitere und vor allem technisch-umfangreichere Lektüre:
- Wikipedia-Artikel zum Cron-Daemon: Hier
- Wikipedia-Artikel zu Anacron: Hier
- Wikipedia-Artikel zu Systemd: Hier
- Wikipedia-Artikel zu Launchd: Hier
Meine Tipps & Tricks rund um Technik & Apple
Ähnliche Beiträge
Johannes hat nach dem Abitur eine Ausbildung zum Wirtschaftsassistenten in der Fachrichtung Fremdsprachen absolviert. Danach hat er sich aber für das Recherchieren und Schreiben entschieden, woraus seine Selbstständigkeit hervorging. Seit mehreren Jahren arbeitet er nun u. a. für Sir Apfelot. Seine Artikel beinhalten Produktvorstellungen, News, Anleitungen, Videospiele, Konsolen und einiges mehr. Apple Keynotes verfolgt er live per Stream.
Ich habe mir einen MacBook Pro M2 Pro 2023 gekauft. Mein alter Mac hatte noch ein Intel-Prozessor, 7 Jahre alt. Der Unterschied, der Neue wird nicht warm. Ob ich mir in 7 Jahren wieder einen Neuen kaufen werde, ist offen. Diese Teile sind nicht billig. Wer aber mit den Windowsrechnern arbeiten musste, weis ein Apple zu schätzen. Hard-und Software aus einem Haus. Wegen dem Arbeitsspeicher ist nicht sooo schön. Muss man nehmen was angeboten wird.
Ich sehe mir Euer Portal mal ein wenig näher an.
Ach, ja, habt Ihr eine Beschreibung, wie Apple die Daten speichert, außer auf Dokumente.
Wenn ich dafür keinen Ordner einrichte. Z.B.: die Vorlagen bei Pages oder Numbers.
Hallo Falk! Ja, die Macs sind immer etwas teurer, aber ich persönlich finde den Preis in Ordnung, wenn ich mir dafür die vielen Kopfschmerzen spare, die ich mit meinem PC hatte.
Zu deiner Frage: Die habe ich leider nicht richtig verstanden. Was genau meinst du mit “wie Apple die Daten speichert”?
Das stimme ich voll zu, bezüglich Preis und so.
Wegen den Daten, Pages und Numbers haben Vorlagen, die ich auswählen kann und ich kann meine spezielle Vorlage absichern. Die Funktion der Library ist mir nicht so klar.Unter Sonoma ist einiges dazugekommen. Das sind Bereiche, die im Hintergrund laufen. Das meinte ich.
Hi Falk! Sorry, wenn ich so begriffsstutzig bin. Ich verstehe es nicht ganz… du sprichst von Pages zum Beispiel. Wo ist da eine Library? Meinst du die “Bücher” unter den Vorlagen? Oder stehe ich total auf dem Schlauch? 😂
Hi Jens, Du stehst auf dem Schlauch.Hast Du vom macOS-Betriebssytem überhaupt eine Ahnung???
Hallo Falk.
Erstens: Werd mal nicht frech!
Zweitens: Wie wäre es, wenn du deine Frage ordentlich stellst, damit man weiß, was du überhaupt willst?
Immerhin schreibst unter einem Beitrag, der absolut nichts mit deinem Frage-Thema zu tun hat, einen Kommentar zu deinem Mac-Kauf und deinen Erfahrungen, die in keinem Zusammenhang zu irgendwas stehen. Dann beziehst du dich auf einen anderen Beitrag, ohne ihn genau zu benennen (wie wäre es, wenn du deine Frage unter genau jenem Beitrag stellst, damit man sie thematisch zuordnen kann?). Weiterhin geht es mal hier um Vorlagen, mal da um die Library und dann noch darum, dass in Sonoma irgendwas dazugekommen ist. Wie soll man da genau verstehen, was du willst?
Also, anstatt hier irgendjemandem fehlende Ahnung zu unterstellen, solltest du mal ordentlich darlegen, was dein Problem ist und welche genaue Frage du hast. Ich hab mir alle Mühe gegeben, um zu verstehen, was du willst. Aber das ist einfach nicht möglich.
Hi Falk! Auch, wenn du schon Rückmeldung von Johannes hattest. Ich bin wirklich erstaunt, wie schnell deine Laune kippt, nur weil jemand, der dir helfen will, zwei mal nachfragt. Vielleicht wäre es konstruktiver, du überlegst, ob man deine Kommentare vielleicht auch falsch oder missverstehen kann und eine oder auch zwei Rückfragen berechtigt sind.
Ich klinke mich hier aber nun aus, weil ich keine Diskussionen mit Trollen führe, die die Anonymität des Internet nutzen, um sich wie die Axt im Walde zu benehmen. Dir noch viel Spaß auf anderen Webseiten! Grüße, Jens
Weist Du, ein Kenner weiss, wovon ich spreche. Es ist das Beste wir machen nicht weiter.
Es gibt genug Ansprechpartner, die meine Fragen ohne Probleme beantworten können, weil sie wissen, um was es geht. OK?? Ich glaube, Du hast meine Texte nicht richtig durchgelesen.
Meinetwegen.