En las últimas semanas, mi computadora portátil OS X 10.8.4 se ha atascado por completo en estados en los que es imposible interactuar directamente. Varias veces, la cuña USB de VMWare Fusion ha roto la entrada del teclado. Una vez, el sistema tenía una aparente condición de carrera entre el bloqueo del sistema y la solicitud de desbloqueo, dejando la GUI completamente bloqueada. Estos son problemas terribles, pero no hay nada que pueda hacer para solucionarlos.
Todo lo que puedo hacer es averiguar cómo puedo obtener un reinicio limpio cuando esto sucede. Puedo ingresar a la computadora y ejecutar cualquier comando, sin problema. Realmente no confío en que el estado del sistema sea recuperable en ninguno de esos estados, así que solo quiero un reinicio limpio.
Pero noshutdown -h now
es un reinicio limpio. No hace lo mismo para cerrar limpiamente las aplicaciones GUI que seleccionar "Reiniciar..." o "Apagar..." en el menú de Apple. Da como resultado la pérdida de datos porque las aplicaciones GUI no se cerraron limpiamente. Podría intentar encontrar todo lo que tengo funcionando en ps y enviarlos todos . Parece funcionar, pero es un proceso enormemente manual. Me encantaría decirle a OS X que haga lo que sea que haga cuando elija esos elementos del menú.SIGTERM
Entonces, ¿hay alguna utilidad que haga esto bien? ¿Estoy atascado haciéndolo de forma manual y propensa a errores?
Sí, ok. Puedo resolver esto con Applescript. Gracias a patrix por hacerme mirar en la dirección correcta.
tell application "Finder"
restart
end tell
Guardado como restart.scpt
, ejecutar con osascript restart.scpt
. Probé ejecutándolo de forma remota con la pantalla bloqueada y se reinició perfectamente. Debo recordar que Applescript existe cada vez que quiero automatizar las interacciones del Finder.
osascript -e 'tell app "System Events" to restart'
. Cierta terminología general de secuencias de comandos se trasladó a Eventos del sistema en las primeras versiones de OS X, y el restart
comando ahora forma parte del "paquete heredado" en el diccionario de Finder. Sin embargo , si observa la pestaña de eventos en el Editor de AppleScript, ambos restart
comandos solo se envían «event aevtrest»
a la ventana de inicio de sesión.killall Finder
hace lo mismo para hacer que el buscador se reinicie y deje las otras aplicaciones y programas en segundo plano solos.
sin ladera
SIGTERM
a todos los procesos es exactamente lo queshutdown
hace :-)Carlos
shutdown
no detiene limpiamente VMWare Fusion. EnviarloSIGTERM
sí. Algo es diferente.sin ladera
Carlos