Es gibt verschiedene Möglichkeiten, Skripte beim Anmelden / Abmelden in OS X auszuführen. Einige sind aktueller und gelten nur für 10.5 und höher. Einige sind eher veraltet. Am schnellsten ist es jedoch, a hinzuzufügen Login Hook
.
Erstellen Sie zunächst das Skript, das Sie ausführen möchten. Öffnen Sie ein Terminal und geben Sie Folgendes ein:
touch ~/script.sh
open -e !$
Dies öffnet einen Texteditor. Geben Sie das Skript ein, z. B. mit folgendem Inhalt:
#!/bin/sh
# insert your script here
Speicher die Datei. Führen Sie in Ihrem Terminal Folgendes aus:
chmod +x ~/script.sh
Dadurch wird die Datei ausführbar. Fügen wir es nun als Haken hinzu:
sudo defaults write com.apple.loginwindow LoginHook /usr/local/bin/script.sh
Es gibt auch das Logout Hook
Gegenstück:
sudo defaults write com.apple.loginwindow LogoutHook /usr/local/bin/script2.sh
Ich habe dies unter OS X 10.6 getestet und es sollte sogar bis 10.8 funktionieren. Beachten Sie, dass das Skript als ausgeführt wird root
und es nur einen Hook zum Anmelden bzw. Abmelden gibt.
Um dies alles rückgängig zu machen, geben Sie ein
sudo defaults delete com.apple.loginwindow LoginHook
sudo defaults delete com.apple.loginwindow LogoutHook
Beachten Sie, dass diese Methode nicht für die Bereitstellung oder ähnliches empfohlen wird. Wenn Sie sie jedoch nur wie in Ihrer Frage angegeben verwenden, sollte dies kein Problem sein.
Login-Hooks wurden in 10.4 zugunsten von launchd veraltet. Um ein Skript beim Anmelden auszuführen, speichern Sie eine Liste wie diese unter
~/Library/LaunchAgents/test.plist
. Es wird beim nächsten Login geladen, auch wenn Sie nicht laufenlaunchctl load ~/Library/LaunchAgents/test.plist
.Weitere Informationen finden
man launchd.plist
und diesen Blog - Eintrag .quelle
Damit diese Hooks in 10.10 funktionieren, müssen Sie Folgendes tun:
Öffnen Sie die
/etc/ttys
Datei: Wählen Sie im Finder im Menü "Gehe zu" die Option "Gehe zu Ordner"/etc/
, geben Sie ein und klicken Sie auf "Gehe zu".Öffnen Sie im daraufhin
ttys
angezeigten Fenster die Datei in Ihrem bevorzugten Texteditor (z. B. TextEdit).Suchen Sie nach einer Zeile mit der Aufschrift:
console "/System/Library/CoreServices/loginwindow.app/Contents/MacOS/loginwindow" vt100 on secure window=/System/Library/CoreServices/WindowServer onoption="/usr/libexec/getty std.9600"
Bearbeiten Sie diese Zeile so, dass sie wie folgt lautet (diese Zeile enthält keine Unterbrechungen):
console "/System/Library/CoreServices/loginwindow.app/Contents/MacOS/loginwindow -LoginHook /path/to/script" vt100 on secure window=/System/Library/CoreServices/WindowServer onoption="/usr/libexec/getty std.9600"
dh hinzufügen (wo ist der vollständige Pfad zu dem Skript , dass Sie , wenn sich ein Benutzer anmeldet ausgeführt werden soll) kurz vor dem zweiten Zitat ( ) markieren.
-LoginHook /path/to/script
/path/to/script
"
Speicher die Datei.
Stellen Sie sicher, dass der Texteditor, mit dem Sie diese Datei bearbeiten, die obige Zeile nicht in mehr als eine Zeile unterteilt.
oder folgen Sie den vollständigen Anweisungen hier:
http://support.apple.com/en-ca/HT2420
quelle