Mam skrypt powłoki uruchamiany przez aplikację AppleScript. Ten skrypt powłoki ponownie uruchamia maszynę w pewnym momencie shutdown -r now
.
Jak mogę uniknąć automatycznego uruchamiania aplikacji AppleScript po ponownym uruchomieniu?
- Aplikacja nie jest zawarta w elementach startowych
- Aplikacja jest uruchamiana ponownie, podobnie jak każda inna otwarta aplikacja, gdy skrypt powłoki ponownie uruchamia OS X
Sekwencja jest następująca:
- Dwukrotnie klikam aplikację AppleScript
- AppleScript uruchamia skrypt powłoki w terminalu
- W pewnym momencie skrypt powłoki ponownie uruchamia system
- Aplikacja AppleScript uruchamia się ponownie po ponownym uruchomieniu
Odpowiedzi:
Poproś, aby AppleScript zapisał pusty plik we wstępnie zdefiniowanej lokalizacji i sprawdził jego obecność podczas uruchamiania skryptu. Jeśli plik już tam jest, usuń go i zamknij skrypt; w przeciwnym razie postępuj normalnie i uruchom ponownie.
źródło
Możesz spróbować przekierować polecenie powłoki za pomocą
a następnie powiedz aplikacji, aby wyjść
EDYCJA
Możesz także dodać opóźnienie przed przekierowaniem polecenia.
źródło
Domyślam się, że OS X przywraca stan aplikacji Apple Script po ponownym uruchomieniu. Możliwe, że możesz spróbować skryptu Apple usunąć własny stan aplikacji tuż przed poleceniem restartu, chociaż nie sprawdziłem, czy to działa, czy jest możliwe. Powinien znajdować się w ~ / Library / Saved Application State /.
źródło
Ok znalazłem to.
Skrypt powłoki musiał mieć następujące wiersze:
Powyższe polecenia powłoki inicjują ponowne uruchomienie za pomocą polecenia Apple Script ad hoc, ale natychmiast zabij terminal. Powoduje to zamknięcie aplikacji Apple Script tuż przed uruchomieniem procesu ponownego uruchamiania systemu OS X. Dlatego OS X nie umieszcza aplikacji Apple Script na liście otwartych aplikacji, które należy ponownie otworzyć po ponownym uruchomieniu.
Dwa skutki uboczne stosowania tej metody:
shutdown -r now
polecenia powłoki, które wymusza natychmiastowe ponowne uruchomienie.źródło