Chcę uruchomić skrypt po zamknięciu lub ponownym uruchomieniu komputera iMac z systemem Snow Leopard.
Czytałem gdzieś, że można do tego użyć /etc/rc.shutdown.local, ale to nie działa dla mnie.
Na przykład umieściłem na nim następujące linie:
#!/bin/sh
/usr/bin/osascript -e "set volume with output muted"
Jeśli biegnę:
source /etc/rc.shutdown.local
rzeczywiście wycisza dźwięk. Jeśli jednak mam włączony dźwięk i ponownie uruchomię system operacyjny, dźwięk będzie nadal włączony. To chyba oznacza, że skrypt nie został wywołany.
Jakieś pomysły?
AKTUALIZACJA: Obecnie działa. Myślę, że to dlatego, że poprawna nazwa to rc.local.shutdown, a nie rc.shutdown.local.
Odpowiedzi:
Obecnie działa. Myślę, że to dlatego, że poprawna nazwa to rc.local.shutdown, a nie rc.shutdown.local.
źródło
Inną opcją jest użycie haka wylogowania:
Wartość klucza LogoutHook może być tylko ścieżką do pliku wykonywalnego, a nie do polecenia powłoki. Hak wylogowania jest uruchamiany z uprawnieniami superużytkownika, więc nie potrzebujesz sudo.
Polecenie defaults modyfikuje /var/root/Library/Preferences/com.apple.loginwindow.plist. Dodanie klucza LogoutHook do /Library/Preferences/com.apple.loginwindow.plist nie działa.
Jeśli hak wylogowania trwa wystarczająco długo, aby go uruchomić, wyświetlany jest szary ekran, dopóki hak wylogowania nie zostanie zakończony. Wydaje się, że nie ma limitu czasu, po którym haki wylogowania są zmuszone do zakończenia.
Haki wylogowania były przestarzałe w wersji 10.4, ale nie znalazłem żadnego sposobu na niezawodne uruchamianie programów podczas wylogowywania za pomocą launchd. Nie znam żadnego sposobu na uruchomienie haka wylogowania przed zamknięciem lub ponownym uruchomieniem, ale nie przed wylogowaniem.
źródło
Użyj następującego skryptu:
Uruchom przez
cron
lublaunchd
, którykolwiek wolisz.Spróbuj go zabić
kill pid
, którypid
będąc jego identyfikatorem procesu, którego się uczyszps ax
.Nie chcę teraz zamykać się, żeby przetestować to właściwie, ale to powinien praca.
źródło
say
i nie zawracałem sobie głowy zmianą.Zacznę od stwierdzenia, że jestem noobem w AppleScript. Więc dla dobra innych osób, które zaczynają także - publikuję następujące, które jest niewielką odmianą tego, co autor umieścił.
źródło