Mac - Autostart: Unterschied zwischen den Versionen
(→Wissen) |
|||
| Zeile 47: | Zeile 47: | ||
Die Konfigurationsdateien in den folgenden Ordnern vermitteln dir einen Eindruck von den verschiedenen Daemons und Agents, die von launchd verwaltet werden: | Die Konfigurationsdateien in den folgenden Ordnern vermitteln dir einen Eindruck von den verschiedenen Daemons und Agents, die von launchd verwaltet werden: | ||
| − | Ordner | + | Ordner | Verwendung |
| − | |||
| − | Verwendung | ||
| − | |||
| − | |||
| + | /System/Library/LaunchDaemons | ||
Von Apple bereitgestellte System-Daemons | Von Apple bereitgestellte System-Daemons | ||
| − | /System/Library/LaunchAgents | + | /System/Library/LaunchAgents |
| − | |||
Von Apple bereitgestellte Agents, die für alle Benutzer auf Benutzerbasis gelten | Von Apple bereitgestellte Agents, die für alle Benutzer auf Benutzerbasis gelten | ||
| − | /Library/LaunchDaemons | + | /Library/LaunchDaemons |
| + | System-Daemons anderer Anbieter | ||
| − | + | /Library/LaunchAgents | |
| + | Agents anderer Anbieter, die für alle Benutzer auf Benutzerbasis gelten | ||
| − | /Library/LaunchAgents | + | ~/Library/LaunchAgents |
| + | Agents anderer Anbieter, die nur für den angemeldeten Benutzer gelten | ||
| − | + | === Laden (aktivieren) Entladen === | |
| + | Beispiel: | ||
| + | $ sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist | ||
| + | You can stop the service using the unload subcommand. | ||
| − | + | $ sudo launchctl unload /System/Library/LaunchDaemons/ssh.plist | |
| − | + | Mit KnockKnock kann man gut die Dienste auflisten die laufen. | |
Aktuelle Version vom 25. Mai 2021, 09:27 Uhr
Links[Bearbeiten]
https://support.apple.com/de-de/guide/terminal/apdc6c1077b-5d5d-4d35-9c19-60f2397b2369/mac https://www.macwelt.de/ratgeber/OS-X-Autostart-im-Griff-behalten-9775629.html
- Benutzer und Gruppen > Anmeldeobjekte
- Prozesse werden seit Tiger mit dem Launchdeamon verwaltet. Deamons von Drittanbieter bleiben manchmal nach der Deinstallation übrig.
launchctl
Tools[Bearbeiten]
KnockKnock
Wissen[Bearbeiten]
Seit Sommer 2019 stuft Apple Kernel Extensions generell als abgekündigt ("deprecated") ein. Zukünftige macOS-Versionen werden die Erweiterungen nicht mehr laden, ob dies bereits mit macOS 10.16 ab Herbst 2020 der Fall ist, wurde bislang noch nicht bekanntgegeben.
Die neuen "System Extensions" sollen schrittweise klassische Kernel-Erweiterungen ablösen. Sie können nicht mehr so tief in das System eingreifen: Statt im Kernelspace laufen die System Extensions im Userspace. Das gehöre zu den Maßnahmen rund um die Modernisierung der Plattform, wie Apple im Developer-Support-Bereich erklärt, zudem solle es Sicherheit und Zuverlässigkeit des Systems erhöhen.
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[Bearbeiten]
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.
Daemon kontrollieren - launchctl[Bearbeiten]
Skriptverwaltung mit launchd in Terminal auf dem Mac Während macOS den Prozess launchd verwendet, um Daemons und Agents zu verwalten, kannst du damit deine Shell-Skripts ausführen. Du interagierst nicht direkt mit launchd, sondern verwendest stattdessen den Befehl launchctl zum Laden oder Entladen von launchd-Daemons und -Agents.
Wenn das System gestartet wird, ist launchd der erste Prozess, den der Kernel zum Einrichten des Computers ausführt. Soll das Shell-Skript als Daemon ausgeführt werden, muss es von launchd gestartet werden. Andere Mechanismen zum Starten von Daemons und Agents können nach Ermessen von Apple entfernt werden.
Die Konfigurationsdateien in den folgenden Ordnern vermitteln dir einen Eindruck von den verschiedenen Daemons und Agents, die von launchd verwaltet werden:
Ordner | Verwendung
/System/Library/LaunchDaemons
Von Apple bereitgestellte System-Daemons
/System/Library/LaunchAgents
Von Apple bereitgestellte Agents, die für alle Benutzer auf Benutzerbasis gelten
/Library/LaunchDaemons
System-Daemons anderer Anbieter
/Library/LaunchAgents
Agents anderer Anbieter, die für alle Benutzer auf Benutzerbasis gelten
~/Library/LaunchAgents
Agents anderer Anbieter, die nur für den angemeldeten Benutzer gelten
Laden (aktivieren) Entladen[Bearbeiten]
Beispiel:
$ sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist
You can stop the service using the unload subcommand.
$ sudo launchctl unload /System/Library/LaunchDaemons/ssh.plist
Mit KnockKnock kann man gut die Dienste auflisten die laufen.