MacBook Pro 2010 z systemem OS X Lion.
Czy można uruchamiać skrypty podczas zdarzeń uśpienia i przebudzenia?
Moja konkretna aplikacja polega na tym, że mam zsynchronizowane z Dropbox woluminy Truecrypt, których regularnie używam zarówno na MacBooku, jak i iMacu. Rzadko zamykam mój MBP, ponieważ zamykanie pokrywy jest znacznie szybsze i łatwiejsze, ale oznacza to, że muszę pamiętać, aby zdemontować woluminy Truecrypt i pozwolić im zsynchronizować się ponownie przed zamknięciem mojego MBP. Jest to dość trywialne do montowania / odinstalowywania skryptów, ale chciałbym pójść o krok dalej i automatycznie uruchamiać te skrypty.
źródło
SleepWatcher może się przydać .
Z opisu: Można go użyć do wykonania komendy Unix, gdy komputer Mac lub wyświetlacz komputera Mac przechodzi w tryb uśpienia lub budzi się, po określonym czasie bez interakcji użytkownika lub gdy użytkownik wznawia aktywność po przerwie lub po włączeniu zasilania dostawa notebooka Mac jest podłączona lub odłączona. Może również wysłać komputer Mac do trybu uśpienia lub odzyskać czas od ostatniej aktywności użytkownika.
Działa dla mnie dobrze w 10.6.8. Dostępne są różne wersje obsługujące 10.1 (!) Do 10.7
źródło
brew install sleepwatcher
. I zobacz ten post , jest bardzo pomocny. Narzędzie SleepWatcher obsługuje również system OS X El Capitan (10.11).To moja własna aplikacja, więc zastanów się, ale ControlPlane ma możliwość wykonywania działań w oparciu o tryb uśpienia / budzenia. Znajdziesz go na stronie http://www.controlplaneapp.com/ .
ControlPlane jest rozwidleniem MarcoPolo i został zaktualizowany do działania na Snow Leopard i Lion.
źródło
Opracowałem następujący prosty demon uruchamiania, aby zapewnić wyzwalacz „budzenia” dla skryptów w systemie Leopard:
Możesz zastąpić „say w” swoim kodem. Piszę datę do z, ale możesz to zmienić, aby napisać cokolwiek. W przypadku niektórych skryptów może być konieczne zwiększenie „ExitTimeOut”. My Launch Daemon znajduje się w /Library/LaunchDaemons/wake-alert.plist
Uruchom demona obserwuje DirectoryService.server.log i zapisuje do pliku tymczasowego, pod warunkiem że plik jest pusty. Plik zostanie wyczyszczony przez wpis w dzienniku „Uśpij” i przez Zamknij.
Jeśli użyjesz opcji „szybkiego przełączania użytkownika” w tryb uśpienia, zauważysz, że skrypty wymagające zalogowanego użytkownika będą próbowały uruchomić się zbyt wcześnie i nie będą działać, chyba że zmodyfikujesz demona uruchamiającego - być może grep „Succeeded” w „secure.log”.
źródło
/Library/Logs/DirectoryService/DirectoryService.server.log
nie istnieje w High Sierra (10.13).Innym programem, który możesz odkryć i pokusić się o wypróbowanie, jest EventScripts . Chociaż jest to bardzo imponujący program, który ogólnie polecam, po przetestowaniu go w tym celu NIE wydaje się, aby był w stanie wystarczająco szybko uruchamiać skrypty, aby mogły zostać uruchomione, zanim komputer Mac przejdzie w tryb uśpienia, a zamiast tego skrypt uśpienia nie uruchomi się, dopóki Mac się nie obudzi, co (oczywiście) pokona ten cel.
Mam nadzieję, że ocalę ciebie i wszystkich, którzy to przeczytają, godziny testów zajęło mi dojście do tego wniosku. Przykro mi, ale muszę powiedzieć, że zawiodło, ponieważ pod wieloma względami jest to naprawdę ładnie zaprojektowany, dość mocny i elastyczny program. Jest również dość niedrogi (3 USD). Wydaje się jednak, że wydajność niskiego poziomu nie występuje w przypadku uruchamiania skryptu przed snem.
Z drugiej strony, w moich testach (jak dotąd) sleepwatcher okazał się dość niezawodny i szybki. Jest również bezpłatny, co jest niesamowite. Będę nadal testować, a jeśli okaże się, że to nie działa, czasami aktualizuję swoją odpowiedź i testuję inne opcje.
UPDATE ja nie znaleziono sleepwatcher być spójne i wiarygodne, ponieważ pierwotnie pisząc tę odpowiedź, choć początkowo wydawał się być pracy. W moim przypadku nie muszę uruchamiać dowolnych skryptów, lecz po prostu wysunąć dyski zewnętrzne. Znalazłem małą i niedrogą aplikację, która do tej pory robi to bardzo dobrze: Jettison . To bardzo szybko stało się jednym z niewielu narzędzi, bez których nie mogę żyć. Jeśli twoje potrzeby są takie same, jak moje, myślę, że przekonasz się, że warto zapłacić kilka dolców.
źródło
WakeWatcher jest prostą aplikacją bez tła OS X, którą stworzyłem, aby rozwiązać ten problem. Działa przy
~/.onwake
każdym wykryciu budzenia. Następnie możesz umieścić polecenia do zamontowania / ponownego zamontowania dysków w tym skrypcie.WakeWatcher nadaje się do użycia jako element logowania. Nie jest bardzo wyrafinowany, ale jest darmowy i prosty.
Wykonywanie skryptów w trybie uśpienia byłoby prostym dodatkiem, ale martwię się o czas, jaki muszą upłynąć na ukończenie skryptów, zanim system faktycznie przejdzie w stan uśpienia. Jeśli naprawdę tego potrzebujesz, otwórz problem dotyczący projektu github, a ja go dodam.
źródło