Istnieje kilka narzędzi, które pozwalają przechwycić zmiany statusu zasilania OS X:
Instalacja Sleep Watcher
Spróbujmy tego z Sleep Watcher. Pobierz narzędzie ze strony domowej Bernharda Baehra i postępuj zgodnie z instrukcjami instalacji: zakładając, że rozpakowałeś plik do swojego pulpitu, wywołaj następujące polecenia z okna terminala:
sudo mkdir -p /usr/local/sbin /usr/local/share/man/man8
sudo cp ~/Desktop/sleepwatcher_2.2/sleepwatcher /usr/local/sbin
sudo cp ~/Desktop/sleepwatcher_2.2/sleepwatcher.8 /usr/local/share/man/man8
Spowoduje to zainstalowanie sleepwatcher
binarne i strony podręcznika. Zostaniesz poproszony o hasło administratora.
Tworzenie skryptu uśpienia
Teraz stwórzmy skrypt uśpienia o nazwie ~/.sleep
. Będzie on zawierał polecenia uruchamiane, gdy maszyna zostanie uśpiona (tj. Po zamknięciu pokrywy).
touch ~/.sleep
open -e !$
W tym pliku dodaj następujące informacje:
osascript -e 'tell application "Remote Desktop Connection" to quit'
Spowoduje to zamknięcie aplikacji Microsoft RDP za pomocą poleceń AppleScript. Możesz to zrobić za pomocą dowolnej aplikacji, o ile zmienisz nazwę zgodnie z jej tytułem. Zapisz plik. Teraz musimy go wykonać:
chmod +x ~/.sleep
Testowanie skryptu uśpienia
Teraz przetestuj swój skrypt, uruchamiając najpierw program RDP, a następnie uruchamiając następujące polecenie w Terminalu:
/usr/local/sbin/sleepwatcher --verbose --sleep ~/.sleep
To niczego nie wyświetli, więc pozostaw oba programy RDP i Sleep Watcher, a następnie zamknij pokrywę MacBooka. Poczekaj kilka sekund, aż naprawdę pójdzie spać. Potem obudź go ponownie. Czy RDP się zamknął? Świetny! Czy coś poszło nie tak? Spójrz na wyjście sleepwatcher
polecenie, aby uzyskać podpowiedź, gdzie nie powiodło się.
Możesz teraz anulować obserwator uśpienia, naciskając Ctrl do w Terminalu.
Uruchamianie skryptu w tle
Aby cały czas działać Śpiący Obserwator, musisz uczynić go LaunchDaemonem. Utwórz nowy plik konfiguracyjny, kopiując przykładową konfigurację i rc
-listy.
sudo cp ~/Desktop/sleepwatcher_2.2/config/de.bernhard-baehr.sleepwatcher-20compatibility.plist /Library/LaunchDaemons/de.bernhard-baehr.sleepwatcher.plist
sudo cp ~/Desktop/sleepwatcher_2.2/config/rc.* /etc
Teraz załaduj pliki konfiguracyjne za pomocą launchd
:
sudo launchctl load /Library/LaunchDaemons/de.bernhard-baehr.sleepwatcher.plist
To wszystko czego potrzebujesz. Teraz .sleep
plik będzie zawsze wykonywany przy każdym uśpieniu komputera Mac.