Apagar sin mostrar un cuadro de diálogo de confirmación:
osascript -e 'tell app "System Events" to shut down'
Apagar después de mostrar un cuadro de diálogo de confirmación:
osascript -e 'tell app "loginwindow" to «event aevtrsdn»'
Reiniciar sin mostrar un cuadro de diálogo de confirmación:
osascript -e 'tell app "System Events" to restart'
Reiniciar después de mostrar un cuadro de diálogo de confirmación:
osascript -e 'tell app "loginwindow" to «event aevtrrst»'
Cerrar sesión sin mostrar un cuadro de diálogo de confirmación:
osascript -e 'tell app "System Events" to «event aevtrlgo»'
Cerrar sesión después de mostrar un cuadro de diálogo de confirmación:
osascript -e 'tell app "System Events" to log out'
Ir a dormir (pmset
):
pmset sleepnow
Ir a dormir (AppleScript):
osascript -e 'tell app "System Events" to sleep'
Poner las pantallas en reposo (10.9 y posteriores):
pmset displaysleepnow
Los códigos de cuatro letras para los eventos de Apple están listados en AERegistry.h
.
Todos los comandos de System Events anteriores envían eventos de Apple al proceso loginwindow
. loginwindow
recibe los mismos eventos de Apple mencionados anteriormente cuando cierras sesión, reinicias, apagas o pones la Mac a dormir de forma normal. Consulta Preguntas y respuestas técnicas QA1134: La causación programática de un reinicio, apagado y/o cierre de sesión.
Según man shutdown
, shutdown -h now
y shutdown -r now
envían a los procesos una señal TERM
seguida de una señal KILL
.
Según la Guía de programación de demonios y servicios, cuando le indicas a loginwindow
que cierre sesión, los procesos que admiten la terminación repentina reciben una señal KILL
, y los procesos que no admiten la terminación repentina son finalizados de diferentes maneras: las aplicaciones de Cocoa reciben el método de delegado applicationShouldTerminate:
, las aplicaciones en primer plano reciben el evento de Apple kAEQuitApplication
, las aplicaciones en segundo plano reciben el evento de Apple kAEQuitApplication
seguido por una señal KILL
, y los demonios reciben una señal TERM
seguida por una señal KILL
después de unos segundos.
0 votos
Reinicio para reiniciar también funciona.