Istnieje kilka sposobów uruchamiania skryptów podczas logowania / wylogowywania w OS X , niektóre są nowsze i dotyczą tylko wersji 10.5 i nowszych, niektóre są raczej przestarzałe, ale najszybszym byłoby dodanie Login Hook
.
Najpierw utwórz skrypt, który chcesz uruchomić. Otwórz terminal i wprowadź:
touch ~/script.sh
open -e !$
Spowoduje to otwarcie edytora tekstu. Wpisz skrypt, np. O następującej treści:
#!/bin/sh
# insert your script here
Zapisz plik. W swoim terminalu uruchom:
chmod +x ~/script.sh
Spowoduje to, że plik będzie wykonywalny. Dodajmy teraz jako hak:
sudo defaults write com.apple.loginwindow LoginHook /usr/local/bin/script.sh
Istnieje również Logout Hook
odpowiednik:
sudo defaults write com.apple.loginwindow LogoutHook /usr/local/bin/script2.sh
Przetestowałem to na OS X 10.6 i powinno działać nawet do 10.8. Należy pamiętać, że skrypt działa jako root
i istnieje tylko jeden haczyk do logowania i wylogowania odpowiednio.
Aby cofnąć to wszystko, wpisz
sudo defaults delete com.apple.loginwindow LoginHook
sudo defaults delete com.apple.loginwindow LogoutHook
Pamiętaj, że ta metoda nie jest zalecana do wdrażania ani niczego, ale jeśli używasz jej tylko tak, jak podano w pytaniu, nie powinno to stanowić problemu.
Haki logowania zostały wycofane w wersji 10.4 na korzyść wersji uruchomionej. Aby uruchomić skrypt podczas logowania, zapisz taką listę jak
~/Library/LaunchAgents/test.plist
. Jest ładowany przy następnym logowaniu, nawet jeśli nie uruchomiszlaunchctl load ~/Library/LaunchAgents/test.plist
.Aby uzyskać więcej informacji, zobacz
man launchd.plist
i ten post na blogu .źródło
Aby te haki działały w 10.10, musisz to zrobić:
Otwórz
/etc/ttys
plik: w Finderze wybierz Idź do folderu z menu Idź, wpisz/etc/
, a następnie kliknij Idź.W wyświetlonym oknie otwórz
ttys
plik w preferowanym edytorze tekstu (takim jak TextEdit).Poszukaj linii o treści:
console "/System/Library/CoreServices/loginwindow.app/Contents/MacOS/loginwindow" vt100 on secure window=/System/Library/CoreServices/WindowServer onoption="/usr/libexec/getty std.9600"
Edytuj ten wiersz, aby brzmiał następująco (w tym wierszu nie ma przerw):
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"
tzn. dodaj (gdzie jest pełna ścieżka do skryptu, który chcesz wykonać, gdy użytkownik się zaloguje) tuż przed drugim znakiem quote ( ).
-LoginHook /path/to/script
/path/to/script
"
Zapisz plik.
Upewnij się, że edytor tekstu używany do edycji tego pliku nie dzieli powyższej linii na więcej niż jedną linię.
lub wykonaj pełną instrukcję tutaj:
http://support.apple.com/en-ca/HT2420
źródło