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.