2105539

OS X Autostart im Griff behalten

10.11.2016 | 18:00 Uhr |

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.

Sollte man nicht besser die Finger davon lassen?

Grundsätzlich gilt unter Mac-Anwendern die alte Regel: Wenn etwas funktioniert, sollte man es nicht reparieren. Einsteiger und unerfahrene Anwender sollten die Hände von den Startdiensten lassen oder dies einem überlassen, der sich auskennt

Aus Sicht von Apple sollte ein Endanwender den Library-Ordner gar nicht erst sehen, ist die problemlose Bedienung doch oft der Grund für den Kauf eines Mac. Das Starten der Dienste funktioniert in der Regel reibungslos. Zu schnell macht man durch Eingriffe ein System instabil und kann dann nur noch durch eine Neuinstallation Abhilfe schaffen. Das betrifft vor allem die grundlegenden Systemdienste, die Apple im Library-Ordner des Systems bündelt.

Probleme können in dieser perfekt gedachten Welt dennoch auftreten, wenn man oft Programme von Drittherstellern nutzt. Bei Installation eines Programms will der Hersteller nämlich sehr oft Hintergrunddienste und Hilfsprogramme einbinden, die er über Agents und Daemons steuert. Leider werden diese Hilfsprogramme bei Fehlern des Programmherstellers nicht bei jeder Deinstallation wieder entfernt. Das gilt unter anderem für alte Versionen des Adobe Reader aber auch einige Antivirenprogramme. Eigentlich sind diese verwaisten Launchagents kein Problem. Existiert das zugeordnete Hilfsprogramm nicht mehr, das sie starten sollen, passiert einfach gar nichts. Sie verzögern den Systemstart nicht und belasten weder CPU noch Arbeitsspeicher. Etwas Hintergrundwissen um diese unsichtbaren Aktionen kann aber trotzdem nicht schaden, wenn man nach Fehlern sucht oder Fehlereinträge in Systemprotokollen verstehen will. Hat man beispielsweise ein Programm nur durch das Löschen der Programmdatei entfernt, können Hintergrundprogramme übrig geblieben sein, die unnötig weiterhin System-Ressourcen verbrauchen. Auch schon aus Sicherheitsgründen sollte man gelegentlich sämtliche Startobjekte überprüfen. Für Malware -und Adware -Autoren sind diese Hintergrundprozesse nämlich äußerst interessant. So nutzt die Adware Genieo beispielsweise die Autostart-Mechanismen von Apple.

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.

Alternative für Einsteiger: Programme als Anmeldeobjekt eintragen

Im Alltag ist vor allem der automatische Start bestimmter Apps beim Systemstart wichtig – beispielsweise bei einem Menüleisten-Tool, das das Wetter anzeigt

Dazu muss man aber nicht gleich XML-Dateien editieren oder zu launchctl greifen, Apple bietet eine einfachere und schnellere Methode. Will man, dass ein Programm wie Outlook beim Programmstart automatisch startet, trägt man es in der Systemeinstellung „Benutzer & Gruppen“ in der Liste der so genannten Anmeldeobjekte ein. Hier kann man zusätzlich einstellen, dass das Programm nach dem Start ausgeblendet wird, damit nicht zu viele Programmfenster den Schreibtisch verdecken. Noch schneller geht es über das Docksymbol: Klickt man mit der linken Maustaste auf ein Programmsymbol im Dock, kann man im Kontextmenü unter „Optionen“ die Option „Bei der Anmeldung öffnen“ aktivieren – und auch wieder deaktivieren.

Zeitgesteuert oder zu bestimmten Wochentagen kann ein Programm ebenfalls gestartet werden. Möglich macht´s iCal: Legt man einen neuen Termin an, klickt man im Infofenster auf „Hinweis, Wiederholung oder Wegzeit hinzufügen“. In der ausklappenden Liste klickt man nun auf „Warnhinweis“ und wählt im Ausklappmenü „Eigene“. Klickt man auf „Nachricht“, kann man statt einer Nachricht „Datei öffnen“ auswählen. Statt „Kalender“ wählt man nun „Andere“ aus und kann ein beliebiges Programm wählen. Zum gewählten Termin öffnet sich das Programm automatisch. Praktisch ist dies vor allem für Apps, die beim Programmstart eine Aktion ausführen – etwa ein Backup durchführen oder längere Zeit nach Updates suchen.

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 Antivirenscanner 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: Das Tool 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.

Glossar – Die wichtigsten Begriffe

launchd
Das Framework launchd ist bei OS X das zentrale Framework für das Starten, Beenden und Verwalten von Prozessen und Skripts.

launchctl
Für die Administration von launchd ist das Tool launchctl zuständig. Man kann damit beispielsweise sämtliche geladenen Prozesse auflisten oder analysieren.

Dämonen und Agents
So genannte „Daemons“ beziehungsweise Dämonen sind systemweit agierende Dienste, die keine Nutzerinteraktion erfordern – sie haben keine eigene Bedienoberfläche. Oft erkennt man sie am Suffix „d“ wie den Time-Machine-Prozess „backupd“. „Agents“ dagegen ist immer auf einen Nutzer bezogen.

Jobs
Das Verhalten von Daemons und Agents wird über eine XLM-Datei beziehungsweise Property List verwaltet, die man auch als „Job“ bezeichnet.

Dienste
Unter Windows sind Systemdienste das Äquivalent zu den Daemons. Im Web und Fachmedien werden aber auch die Mac-Daemons oft als Systemdienste bezeichnet. Das führt leicht zu Verwirrung, da man beim Mac unter „Dienste“ nur die auch „Services“ genannten Programmfunktionen versteht, die man per Tastaturbefehle oder Dienstemenü aufruft.

Anmeldeobjekt
Soll beim Systemstart automatisch ein Programm starten, ist ein Launchagent unnötig. Über die Systemeinstellung Benutzer kann man ein Programm oder auch Skript als Anmeldeobjekte eintragen.

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 iCal.

0 Kommentare zu diesem Artikel
2105539