Вимкніть, не показуючи діалогове вікно підтвердження:
osascript -e 'tell app "System Events" to shut down'
Вимкніть після відображення діалогового вікна підтвердження:
osascript -e 'tell app "loginwindow" to «event aevtrsdn»'
Перезапустіть, не показуючи діалогове вікно підтвердження:
osascript -e 'tell app "System Events" to restart'
Перезапустіть після відображення діалогового вікна підтвердження:
osascript -e 'tell app "loginwindow" to «event aevtrrst»'
Вийдіть без показу діалогового вікна підтвердження:
osascript -e 'tell app "System Events" to «event aevtrlgo»'
Вийдіть після відображення діалогового вікна підтвердження:
osascript -e 'tell app "System Events" to log out'
Перейдіть спати ( pmset
):
pmset sleepnow
Перейдіть до сну (AppleScript):
osascript -e 'tell app "System Events" to sleep'
Перекладіть екрани в режим сну (10.9 і новіших версій):
pmset displaysleepnow
Чотири літерні коди подій Apple перераховані в AERegistry.h
.
Усі команди Системні події вище надсилають події Apple у loginwindow
процес. loginwindow
при виході, перезапуску, вимкненні або переведенні Mac у режим нормального сну надсилаються ті самі події Apple, що і вище. Див. Технічні питання QA1134: Програмно викликає перезапуск, відключення та / або вихід із системи .
Відповідно man shutdown
, shutdown -h now
і shutdown -r now
відправляє обробляє TERM
сигнал, за яким йде KILL
сигнал.
Відповідно до Посібника з програмування Daemons and Services , коли ви скажете loginwindow
вийти, процеси, що підтримують раптове припинення, надсилаються KILL
сигналом, а процеси, які не підтримують раптове припинення, припиняються по-різному: програми какао отримують applicationShouldTerminate:
метод делегата, програми переднього плану отримують kAEQuitApplication
події Apple, фонові програми отримують kAEQuitApplication
подію Apple, що супроводжується KILL
сигналом, а демони отримують TERM
сигнал, за яким KILL
сигнал проходить через кілька секунд.