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
loginwindow
proceso.loginwindow
se 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 now
yshutdown -r now
envía procesa unaTERM
señal seguida de unaKILL
señal.De acuerdo con la Guía de programación de servicios y demonios , cuando le indica que cierre
loginwindow
sesión, los procesos que admiten la finalización repentina reciben unaKILL
señ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 elkAEQuitApplication
evento de Apple, las aplicaciones en segundo plano reciben elkAEQuitApplication
evento de Apple seguido de unaKILL
señal, y los demonios reciben unaTERM
señal seguida de unaKILL
señ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-D
cerrar sesión, ya que no ensucia el historial de la línea de comandos.