Me estoy interesando más en usar Terminal como una forma alternativa de abordar soluciones en mi Mac. He visto esta pregunta titulada "¿Hay una mejor manera de apagar / reiniciar OSX?" .
Por lo tanto, me gustaría saber:
¿Cómo apagar, reiniciar y dormir mi Mac usando el comando Terminal exclusivamente?

Respuestas:
El comando que busca es apagar . Esto informa a todos los usuarios que la máquina se va a apagar y les dice a todas las aplicaciones que cierren archivos, etc.
El comando toma un parámetro -h, -r o -s para apagar, reiniciar o suspender la Mac.
El comando debe ejecutarse como root, por lo que debe usar sudo.
por ejemplo, reiniciar la máquina inmediatamente
por ejemplo, apagar la máquina en 60 minutos
De los comentarios hay dos cosas que deben abordarse
El funcionamiento del apagado es mediante el envío de un sigterm a todos los procesos que luego deben ocuparse de eso, por ejemplo, guardar archivos abiertos, etc. Si no salen, se les enviará un SIGKILL que los obliga a morir sin posibilidad de responder. Las señales no se envían a través de la cola de mensajes de clave normal, por lo que las aplicaciones tienen que lidiar con esto por separado al código que se llama desde salir en el menú. Una buena aplicación debería llamar a un código común de ambos.
Esta otra respuesta muestra cómo cerrar como si presionas las opciones del menú. Pero tenga en cuenta que las aplicaciones pueden cancelar este cierre
fuente
/System/Library/CoreServices/Menu\ Extras/User.menu/Contents/Resources/CGSession -suspend. Lo tengo alias en un archivo que se encuentra en mi .bash_profile de la siguiente manera:alias lock='/System/Library/CoreServices/Menu\ Extras/User.menu/Contents/Resources/CGSession -suspend'Apague sin mostrar un diálogo de confirmación:
Apague después de mostrar un diálogo de confirmación:
Reinicie sin mostrar un diálogo de confirmación:
Reinicie después de mostrar un cuadro de diálogo de confirmación:
Cerrar sesión sin mostrar un diálogo de confirmación:
Cerrar sesión después de mostrar un cuadro de diálogo de confirmación:
Ve a dormir (
pmset):Ve a dormir (AppleScript):
Poner pantallas para dormir (10.9 y posterior):
Los códigos de cuatro letras para los eventos de Apple se enumeran en
AERegistry.h.Todos los comandos de eventos del sistema anteriores envían eventos de Apple al
loginwindowproceso.loginwindowse envían los mismos eventos de Apple que los anteriores cuando cierra la sesión, reinicia, apaga o pone la Mac en reposo normalmente. Consulte Preguntas y respuestas técnicas QA1134: Programar reinicio, apagado y / o cierre de sesión mediante programación .Según
man shutdown,shutdown -h nowyshutdown -r nowenvía procesa unaTERMseñal seguida de unaKILLseñal.De acuerdo con la Guía de programación de servicios y demonios , cuando le indica que cierre
loginwindowsesión, los procesos que admiten la finalización repentina reciben unaKILLseñal, y los procesos que no admiten la finalización repentina se finalizan de diferentes maneras: las aplicaciones Cocoa reciben elapplicationShouldTerminate:método delegado, las aplicaciones en primer plano recibir elkAEQuitApplicationevento de Apple, las aplicaciones en segundo plano reciben elkAEQuitApplicationevento de Apple seguido de unaKILLseñal, y los demonios reciben unaTERMseñal seguida de unaKILLseñal después de unos segundos.fuente
Apagado inmediato:
Si desea retrasar el apagado, puede usar la siguiente sintaxis de comando:
(-h parámetro establecido tiempo para apagar, donde (+) 30 minutos para detener el sistema)
fuente
También es útil, para cerrar sesión desde la línea de comandos del terminal, escriba 'exit':
fuente
Ctrl-Dcerrar sesión, ya que no ensucia el historial de la línea de comandos.