Zamknij bez wyświetlania okna dialogowego potwierdzenia:
osascript -e 'tell app "System Events" to shut down'
Zamknij po wyświetleniu okna dialogowego potwierdzenia:
osascript -e 'tell app "loginwindow" to «event aevtrsdn»'
Uruchom ponownie bez wyświetlania okna dialogowego potwierdzenia:
osascript -e 'tell app "System Events" to restart'
Uruchom ponownie po wyświetleniu okna dialogowego potwierdzenia:
osascript -e 'tell app "loginwindow" to «event aevtrrst»'
Wyloguj się bez wyświetlania okna dialogowego potwierdzenia:
osascript -e 'tell app "System Events" to «event aevtrlgo»'
Wyloguj się po wyświetleniu okna dialogowego potwierdzenia:
osascript -e 'tell app "System Events" to log out'
Idź spać ( pmset
):
pmset sleepnow
Idź spać (AppleScript):
osascript -e 'tell app "System Events" to sleep'
Przełącz ekrany w tryb uśpienia (10.9 i nowsze):
pmset displaysleepnow
Cztery litery kodów zdarzeń Apple są wymienione w AERegistry.h
.
Wszystkie powyższe polecenia Zdarzenia systemowe wysyłają zdarzenia Apple do loginwindow
procesu. loginwindow
wysyłane są te same zdarzenia Apple, co powyżej, gdy wylogujesz się, uruchomisz ponownie, zamkniesz lub uśpisz komputer Mac. Patrz techniczne pytania i odpowiedzi QA1134: Programowo powodujące ponowne uruchomienie, zamknięcie i / lub wylogowanie .
Według man shutdown
, shutdown -h now
i shutdown -r now
wysłać przetwarza TERM
sygnał, po którym następuje KILL
sygnał.
Zgodnie z Przewodnikiem programowania demonów i usług , gdy użytkownik loginwindow
chce się wylogować, procesy obsługujące nagłe zakończenie są wysyłane KILL
sygnał, a procesy, które nie obsługują nagłego zakończenia, są kończone na różne sposoby: aplikacje kakao otrzymują applicationShouldTerminate:
metodę delegowania, aplikacje pierwszego planu odbiera kAEQuitApplication
zdarzenie Apple, aplikacje działające w tle odbierają kAEQuitApplication
zdarzenie Apple, a następnie KILL
sygnał, a demony odbierają TERM
sygnał, a następnie KILL
sygnał po kilku sekundach.