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 loginwindowprocesu. loginwindowwysył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 nowi shutdown -r nowwysłać przetwarza TERMsygnał, po którym następuje KILLsygnał.
Zgodnie z Przewodnikiem programowania demonów i usług , gdy użytkownik loginwindowchce się wylogować, procesy obsługujące nagłe zakończenie są wysyłane KILLsygnał, 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 kAEQuitApplicationzdarzenie Apple, aplikacje działające w tle odbierają kAEQuitApplicationzdarzenie Apple, a następnie KILLsygnał, a demony odbierają TERMsygnał, a następnie KILLsygnał po kilku sekundach.