2105539

macOS: Autostart im Griff behalten

02.08.2018 | 13:00 Uhr | Stephan Wiesend

Hinter dem „launchd“ genannten Systemdienst versteckt sich so mancher Leistungsfresser und gelegentlich fiese Adware. Doch mit Tricks und den richtigen Tools wird man sie wieder los

Bei jedem Boot-Vorgang startet macOS eine Vielzahl von Diensten und Programmen. Dazu gehören grundlegende Systemfunktionen wie beispielsweise der Finder und das Netzwerk, aber auch Apps, Skripte und Dienste von Drittherstellerprogrammen. Wir erklären, wie es funktioniert und wann und ob man eventuell manuell eingreifen sollte. Konfigurationsänderungen sind nicht ganz ungefährlich und sollten nur von wirklich erfahrenen Anwendern vorgenommen werden. Zumindest das Überprüfen der Startdienste ist aber gelegentlich sinnvoll.

So funktionieren die Startdienste

Bei jedem Rechnerstart aktiviert die Firmware des Mac zuerst den Systemkern (Kernel) und danach als ersten übergeordneten Systemprozess das Tool launchd (Launch Deamon ). Dieses startet dann alle für das System benötigten Prozesse wie Finder, Netzwerkdienste und fast dreihundert weitere Systembestandteile. Ebenso startet Launch Deamon Hintergrundprozesse von Drittherstellern, etwa Update-Programme von Adobe und Google. Vor OS X 10.4 war dies ein komplexer Prozess mehrerer Tools, bei dem öfter kleine Probleme und Verzögerungen auftraten. Apple hat deshalb für diese Systembestandteile mit launchd einen zentralen Dienst eingeführt. Dieses Framework startet und verwaltet alle Prozesse, die des Systems und die der Nutzer. Programme, Dienste und Skripte werden in der Unix-Welt als Daemons und Agents bezeichnet. Wir bleiben im weiteren bei der Schreibweise „Daemons“, die eingedeutschte Bezeichnung „Dämonen“ wäre genauso korrekt.

Die schnellste und einfachste Prüfung der Startdateien bietet Launch Control: Bei Dateien mit Fehlern zeigt es eine Fehlermeldung.
Vergrößern Die schnellste und einfachste Prüfung der Startdateien bietet Launch Control: Bei Dateien mit Fehlern zeigt es eine Fehlermeldung.

Das Framework launchd sorgt durch die zentrale Steuerung nebenbei für einen deutlich schnelleren Systemstart als bei älteren Systemversionen. Es bleibt auch nach dem Systemstart aktiv. Manche Daemons und Agents lädt es nur bei Bedarf oder zeitgesteuert, andere startet es bei einem Absturz sofort wieder neu, etwa weil sie für die essentiellen Funktionen des Systems wichtig sind. Ein Beispiel dafür wäre blued . Dieser Deamon ist für die Erkennung von Bluetooth-Geräten zuständig und muss folglich immer laufen, so lange Bluetooth eingeschaltet ist.

Manchmal versteckt sich Adware unter den Daemons und Agents. Beim Identifizieren ist die Freeware Knock Knock behilflich.
Vergrößern Manchmal versteckt sich Adware unter den Daemons und Agents. Beim Identifizieren ist die Freeware Knock Knock behilflich.

Bei der Auswahl der zu startenden Dienste orientiert sich launchd nicht an einer internen Liste, sondern an so genannten Jobs. Dies sind in ihrem Format vorgegebene XML-Dateien, die in fünf Library-Ordnern liegen können. Sie legen fest, welche Prozesse launchd wann und wie startet: Besonders wichtig sind zwei Ordner im Library-Ordner des Systems (/System/Library), die Ordner Launchagents und Launchdaemons. Diese beiden Ordner bleiben dem System vorbehalten und sollten nicht angerührt werden. Hier befinden sich nur für das System wichtige Dienste von Apple – man erkennt dies daran, dass der Dateiname der Jobs mit „apple.com.“ anfängt. Einstellungsdateien von Drittherstellern findet man dagegen in zwei gleichnamigen Ordnern des Library-Ordners im Wurzelverzeichnis der Festplatte (/Library). Berücksichtigt wird auch der Ordner „Launchagents“ im Library-Ordner des Benutzers.

Die Unterschiede zwischen Agents und Daemons sind eigentlich marginal. Daemons agieren systemweit und erfordern keine Nutzerinteraktion. Agents arbeiten dagegen immer auf einen Nutzer bezogen. Deshalb gibt es auch keinen Ordner für Launchdaemons im Library-Ordner des Benutzers.

Die Aufgaben von Agents und Daemons

Häufigste Aufgaben eines Dritthersteller-Agents ist der Start einer Update-Suche oder das Aktivieren eines Hintergrundprogramms. Nutzt man beispielsweise eine alte Version des Adobe Reader, findet man einen Agent von Adobe im Library-Ordner „Launchagents“. Bei älteren Versionen mit dem Namen com.adobe.ARM, bei neueren com.Adobe.AAM. Laut Anweisung in dieser XML-Datei startet launchd alle 3,5 Stunden das Tool „Adobe Reader Updater Helper“, das daraufhin bei Adobe nach einem Update sucht und eine neue Version sofort dem Anwender mitteilt.

Da das Tool launchd nicht nur während des Systemstarts, sondern permanent aktiv ist, bietet das Framework eine Vielzahl an Optionen. So kann man beispielsweise festlegen, dass zeitgesteuert ein bestimmtes Programm startet, dass beim Anschluss einer Festplatte gleichzeitig ein Backup-Tool startet oder eine App nach dem Beenden direkt wieder automatisch gestartet wird.

So erkennen Sie Malware und unbekannte Startdateien

Oft genügt bereits ein einfacher Blick in die Ordner Launchagents im Library-Ordner des Benutzers und den beiden Launch-Ordnern des Systems. Als zweiter Bestandteil des Dateinamens sollte die Datei nämlich mit dem Herstellernamen benannt sein – beispielsweise ein Agent von Adobe mit dem Namen „com.adobe“. Sogar Adware wie Genieo ist oft am Namen erkennbar. So beginnt der Dateiname bei älteren Versionen mit „com.genieo“ – leider hat der Hersteller der Adware dies mittlerweile geändert. Andere bekannte Malware-Namen sind com.perion, premierOpinion.plist und com.vsearch.

Lingon ist ebenso wie Launch Control sehr hilfreich beim Überprüfen oder Erstellen eigener Startdateien.
Vergrößern Lingon ist ebenso wie Launch Control sehr hilfreich beim Überprüfen oder Erstellen eigener Startdateien.

Oft sammeln sich im Laufe der Jahre Dateien an, die sich auf längst verschwundene Programme beziehen. Findet man in einem der Launch-Ordner eine unbekannte Datei, ist die Identifizierung unter Umständen recht mühsam. Der Dateiname bietet zwar einen ersten Hinweis, kann bei Malware aber völlig unverdächtig wirken. Wichtiger ist, welches Tool oder Skript diese Datei startet.

Tipp: Da die Konfigurationsdateien XML-Daten sind, kann man sie mit der Vorschaufunktion des Finders öffnen. Findet man im Ordner des Nutzers beispielsweise eine Datei namens „com.Adobe.ARM“ genügt ein Blick in die Textdatei, um das Zielprogramm zu erkennen: Die „Zieldatei“ ist bei diesem Job ein Update-Tool des Adobe Reader. Oft ist auch das Erstellungsdatum nützlich.

Man benötigt kein Terminal, um Programme automatisch zu starten, man muss sie nur unter der Systemeinstellung Benutzer als Anmeldeobjekt ergänzen.
Vergrößern Man benötigt kein Terminal, um Programme automatisch zu starten, man muss sie nur unter der Systemeinstellung Benutzer als Anmeldeobjekt ergänzen.

Eine gute Hilfestellung bei der Suche nach Malware bietet das Tool Knock Knock von Patrick Wardle. Die Freeware listet in einer Browser-Oberfläche alle von Drittherstellern stammenden Systemkomponenten auf. Dazu gehören neben Plug-ins, Kernel-Erweiterungen alle Startobjekte. In der Auflistung zeigt das Tool nach einem kurzen Scanvorgang neben jedem Eintrag eine Wertung des Webdienstes Virustotal , eines Online-Malwarescanners. Ein Ergebnis wie 0/57 für ein Launch Items wie GoogleSoftwareUpdateAgent, bedeutet, dass 57 Virenscanner grünes Licht gegeben haben – es ist vielleicht lästig und fehlerhaft, aber keine Malware. Eine Virus Total noch unbekannte Erweiterung kann man manuell überprüfen lassen, was etwa eine Minute dauert. Über einen Info-Knopf liefert das Tool außerdem den Dateipfad und Zusatzinformationen. Vom gleichen Hersteller gibt es außerdem mit dem Tool Block Block eine gute Ergänzung: Die Software läuft im Hintergrund und zeigt jedes Mal ein Warnfenster, wenn ein Tool ein Hilfsprogramm installieren will.

Launchagents sind XML-Dateien, die etwa Update-Programme starten oder Hintergrundprogramme steuern.
Vergrößern Launchagents sind XML-Dateien, die etwa Update-Programme starten oder Hintergrundprogramme steuern.

So erkennen Sie Probleme mit Startdateien

Launchd sorgt aber nicht nur für den Start eines Dienstes. Das permanent im Hintergrund laufende Tool kümmert sich darum, dass manche Dienste nach einem Absturz sofort wieder starten oder zu bestimmten Zeiten aktivieren – unter macOS startet es beispielsweise jeden Tag einen Dienst, der die Systemprotokolle archiviert. Ob es hier häufiger zu Problemen kommt, erfährt der Profi mit dem Dienstprogramm Konsole. Unter „Alle Meldungen“ protokolliert das Tool alle Systemaktivitäten. Gibt man über die Suchfunktion „launchd“ ein, listet es alle Eintragungen zu launchd auf, wichtig sind hier vor allem Fehlermeldungen. Eine besser für Einsteiger geeignete Lösung liefert das Tool Launch Control von Soma Zone. Das für die Konfiguration von Startdateien gedachte Tool überprüft beim Programmstart nämlich auch alle ausgewählten Agents und Daemons – und blendet bei Dateien mit fehlerhaften Einträgen eine Fehlermeldung ein. Es ist übrigens nicht nötig, einen Agent oder Daemon zu löschen, man kann ihn über die Funktion „Unload“ deaktivieren. Er wird dann nicht mehr von launchd geladen.

Ganz leicht eigene Startobjekte erstellen

Für die Konfiguration von launchd ist das Tool launchctl zuständig, das nur per Terminal bedienbar ist. Praktisch ist etwa der Befehl „launchctl list“. Für die Erstellung der so genannten Jobs kann man jeden beliebigen Texteditor oder Apples Property List Editor verwenden. Die etwa 40 Optionen sind aber recht komplex. Einfacher geht es mit einem spezialisierten Tool wie Launch Control von Soma Zone oder Lingon . Anspruchsvollen Anwendern ist das Tool Launch Control zu empfehlen, das eine erstklassige Dokumentation zu launchd liefert – wenn auch englischsprachig. So liefert die Webseite zur preiswerten App eine Fülle an Zusatzinformationen und hilft bei Problemen mit launchd. Für die meisten Alltagsaufgaben ist das Anlegen von eigenen Agents aber nur sehr selten notwendig – schließlich gibt es als Alternative Startobjekte und den Kalender.

Macwelt Marktplatz

2105539