¿Cómo puedo cerrar aplicaciones correctamente/apagar el sistema a través de ssh?

Necesito saber si hay una forma adecuada de cerrar aplicaciones a través de ssh y si es posible apagar el sistema sin o sudo halt( sudo init 0porque creo que esas formas no son buenas para el sistema cuando hay aplicaciones en ejecución)

Respuestas (2)

Tengo que empezar diciendo que no hay nada de malo en usar halto shutdowndesde la línea de comandos.

De hecho, si ejecuta cualquiera de esos comandos, todas las aplicaciones en ejecución recibirán exactamente el mismo mensaje del sistema que si hubiera elegido "Apagar..." en el Finder.

La ventaja de usar sudo shutdownes que puede apagar el sistema independientemente de qué usuarios hayan iniciado sesión.

Si ejecuto halto shutdownlas aplicaciones en ejecución aparecerán cuando inicie sesión la próxima vez :/

Para cerrar aplicaciones, use

osascript -e "tell application \"Mail\" to quit"

Reemplácelo Mailcon el nombre de la aplicación que desea cerrar.

Para apagar correctamente, utilice

osascript -e "tell application \"Finder\" to shut down"
Supongo que puedo tener alias de eso en mi .profile, ¿verdad?
@naoxink De hecho
Si va a utilizar osascriptun script de shell o la línea de comandos, debe tener mucho cuidado con las comillas y los espacios. La primera versión de esta respuesta los tenía todos equivocados. Además, este método solo funcionará si el usuario inició sesión en la Mac y el usuario ssh son los mismos y no hay otros usuarios conectados.
Supongo que será algo como esto: alias myHalt='osascript -e "tell application \'Finder\' to shut down"'. ¿Tengo razón? De todos modos, parece haber más problemas con este método que con haltla opción:/