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
Vete a dormir (AppleScript):
osascript -e 'tell app "System Events" to sleep'
Poner las pantallas en modo de suspensión (10.9 y posteriores):
pmset displaysleepnow
Los códigos de cuatro letras para los eventos de Apple se enumeran en AERegistry.h
.
Todos los comandos anteriores de los eventos del sistema envían eventos de Apple al proceso loginwindow
. loginwindow
recibe los mismos eventos de Apple que el anterior cuando cierra la sesión, reinicia, apaga o pone la Mac en modo de suspensión normalmente. Consulte Preguntas y respuestas técnicas A QA1134: causar un reinicio, apagado y / o cierre de sesión programático .
Según man shutdown
, shutdown -h now
y shutdown -r now
envían procesa una señal TERM
seguida de una señal KILL
.
De acuerdo con la Daemons and Services Programming Guide , cuando le indica a loginwindow
que cierre la sesión, los procesos que admiten una terminación repentina reciben una señal KILL
y los procesos que no admiten una terminación repentina se terminan de diferentes maneras: las aplicaciones Cocoa reciben el método de delegado applicationShouldTerminate:
, aplicaciones en primer plano recibe el evento kAEQuitApplication
Apple, las aplicaciones en segundo plano reciben el evento kAEQuitApplication
Apple seguido por una señal KILL
, y los demonios reciben una señal TERM
seguido por una señal KILL
después de unos segundos.