Wir alle wissen, dass Mac OS X über die sehr nützliche Funktion zum Anmelden von Elementen verfügt , mit der Sie unter anderem Apps / Skripte einrichten können, die beim Anmelden ausgeführt werden.
Ich suche nach einer Möglichkeit, eine Liste der Skripts / Apps einzurichten, die beim Abmelden ausgeführt werden . Eine Liste "Logout Items", wenn Sie so wollen.
Grundsätzlich möchte ich ein paar kleine Bereinigungsskripte für mich selbst schreiben, die automatisch ausgeführt werden, wenn ich mich abmelde oder herunterfahre.
Daher suche ich nach einer Möglichkeit, ein Skript (oder im Idealfall eine Liste davon) beim Abmelden automatisch auszulösen. Das Abmelden würde warten, bis die Skripte beendet sind (genau wie das Abmelden darauf wartet, dass Sie auf Speichern klicken, wenn eine App dies anfordert).
Gibt es eine Möglichkeit, Skripte automatisch auszulösen, wenn ich mich von Mac OS X abmelde?
quelle
Antworten:
Abmelde-Hooks waren in 10.4 veraltet , funktionieren aber noch ab 10.9.
Der Wert des LogoutHook-Schlüssels kann nur ein Pfad zu einer ausführbaren Datei und kein Shell-Befehl sein. Der Logout-Hook wird als root ausgeführt.
Der Befehl defaults ändert /var/root/Library/Preferences/com.apple.loginwindow.plist. Das Hinzufügen eines LogoutHook-Schlüssels zu /Library/Preferences/com.apple.loginwindow.plist funktioniert nicht.
Wenn die Ausführung eines Abmelde-Hooks lange genug dauert, wird ein grauer Bildschirm angezeigt, bis der Abmelde-Hook beendet wird. Es scheint keine zeitliche Begrenzung zu geben, nach der Abmelde-Hooks zum Beenden gezwungen werden.
Ich habe nicht herausgefunden, wie ich Programme beim Abmelden zuverlässig mit launchd ausführen kann. Als ich versuchte, Signale wie EXIT abzufangen, wurde der Code in der Falle nur ausgeführt, wenn ich mich beim Anmeldefenster abgemeldet hatte und nicht, wenn ich herunterfuhr oder neu startete.
quelle
sh
(es erstellt die TXT-Datei). Ich habe das Skript als /etc/rc.shutdown.local gespeichert und esdefaults
wie gesagt mit hinzugefügt . Keine der beiden Dateien war bereits vorhanden. Mache ich etwas falsch? Vielen Dank!Eigentlich gibt es einen Weg:
So verstecken Sie es im Dock:
quelle
Script Timer ist dafür eine gute Wahl. Es kann beim Abmelden, Anmelden und vielem mehr ausgeführt werden. Ich würde mich für eine einfache und benutzerfreundliche Lösung entscheiden. Es hat eine einfache GUI:
Es gibt zwei Dinge, die Sie über Script Timer beachten müssen. Erstens ist es nicht kostenlos. Es kostet 12 Dollar, aber ich persönlich denke, es lohnt sich. Zweitens ist es nicht vollständig kompatibel mit Lion, aber sie haben ein kostenloses Update versprochen, sobald sie es kompatibel gemacht haben.
quelle
Sie können aus Ihrem Skript auch eine Mac-Anwendung mit Platypus erstellen und diese dann wie jede andere Anwendung zu den Anmeldeobjekten hinzufügen.
quelle
Power Manager kann ein Skript ausführen, wenn sich ein Benutzer abmeldet. Dies ist ein kommerzielles Produkt und unterstützt das neueste MacOS.
Frühere Versionen mit dem Ereigniseditor erforderlich , aber ein Schedule Assistant-Task ist jetzt zum Ausführen von Skripten beim An- und Abmelden enthalten.
Ich habe Power Manager geschrieben, daher können Sie technische Fragen zur Implementierung stellen. Im Fall von Ereignissen, die durch das Abmelden ausgelöst wurden, fragt Power Manager keine Änderungen des Benutzerstatus ab, sondern wird von macOS über Benutzeränderungen benachrichtigt. Dieser Ansatz ist effizienter als eine Skriptschleife / -abfrage.
quelle