macOS: Die besten Befehle fürs Terminal

Seite 4: launchd: Dämonen und Agenten

Inhaltsverzeichnis

Eine weitere Spezialität von macOS ist der launchd-Dämon, der beginnend mit Mac OS X 10.4 eine ganze Reihe althergebrachter Dienste ersetzt und unter einem Dach vereint. So löste er das traditionelle Init-System ab und schickt nicht nur den bisherigen SystemStarter und rc-Skripte, die Prozesse und Dienste starten, ins Altenheim, sondern übernimmt auch Funktionen, die andere Unix-Systeme üblicherweise mittels (x)inetd, watchdogd und crond abarbeiten.

Das bedeutet, dass launchd zum Beispiel stellvertretend für Netzwerkdienste bestimmte Ports überwacht und den dazugehörigen Dienst erst dann startet, wenn er eine einschlägige Anfrage entgegennimmt. Ebenso kümmert sich launchd darum, dass notwendige oder gewünschte Prozesse ständig laufen und startet sie gegebenenfalls neu.

All das wird mittels plist-Konfigurations-Dateien im XML-Format bewerkstelligt. LaunchDaemons liegen üblicherweise in den Ordnern /System/Library/LaunchDaemons und /Library/LaunchDaemons. Üblicherweise startet launchd mit diesen LaunchDaemons systemnahe Prozesse wie das loginwindow. Für den normalen Anwender sind LaunchAgents gedacht, die in der Regel im User-Kontext laufen und nicht mit root-Rechten ausgeführt werden. Man findet die Agents unter/Library/LaunchAgents und im Home-Verzeichnis des Benutzers ~/Library/LaunchAgents. Wer eigene, angepasste Agents erstellen möchte, der legt sie am besten im letztgenannten Ordner ab und lädt sie anschließend mit

launchctl load /Pfad/zur/com.Agent.plist

Wer Agents nicht von Hand anlegen möchte, greift zum plist-Editor, der Teil von Xcode ist, oder zum spezialisierten Editor Lingon X, der das Erstellen vereinfacht und dabei gleich überprüft, ob die Syntax der Datei korrekt ist. Mit launchd lässt sich dann beispielsweise ein Skript alle zwei Stunden starten oder ein Verzeichnis auf Änderungen hin überwachen. Letzteres können auch die bekannten Ordneraktionen bewerkstelligen, die Apple bereits mit dem „klassischen“ Mac OS mitlieferte. Musste das System aber früher in regelmäßigen Abständen pollen, geht das heute mittlerweile deutlich ressourcensparender: launchd machts möglich.

Der Editor Lingon stülpt launchd-Konfigurationsdateien eine benutzerfreundliche Oberfläche über.