Estoy intentando que Mac OS X guarde todas mis máquinas virtuales de VirtualBox cuando se reinicia. Ya tengo un script que hace esto, pero necesito OS X para ejecutar este script automáticamente antes de reiniciar.
Cuando Mac OS X se reinicia, ¿se ejecuta / sbin / reboot?
¿O de qué otra forma se podría lograr esto?
/etc/rc.shutdown.local
para ejecutarlo al cerrar. Parece que eso es lo que estás buscando.Respuestas:
Aunque Apple recomienda usar " launchd ", lo más fácil es crear un script de shell utilizando, por ejemplo, el pico de Terminal:
El archivo puede contener algo como:
Luego otorgue derechos de ejecución:
Finalmente, enganche el script al procedimiento de cierre de sesión:
Si inicia otra aplicación, como no lo he probado, creo que podría ser útil advertirme a usted y a usted que:
Es posible que debamos eliminar la señal de apagado para ejecutar lo que queramos;
Luego envíe uno nuevo (tenga cuidado de no matar la señal enviada por nuestro propio
script) ...
Si quieres quitar el gancho:
Si usa " launchd ", la idea sería capturar la señal SIGTERM. Echa un vistazo a: /System/Library/LaunchDaemons/com.apple.shutdown_monitor.plist
fuente
Launchd envía una advertencia temprana de paradas a todos los scripts / daemons que tienen una subrutina StopService () . Esto le da a su proceso la mayor cantidad de tiempo para limpiar.
Solo usa launchd para iniciar el script y haz que se ejecute en segundo plano hasta que sea hora de salir.
Después de que los servicios que recibieron la alerta temprana se están cerrando, todos los procesos reciben una
SIGTERM
señal unos segundos antes de que losSIGKILL
destruyan.Puede crear un script que duerma y atrape a SIGTERM para ejecutar su comando cuando llegue el momento. Tendrá que ver si eso permite suficiente tiempo en la práctica para que se ejecuten los comandos. Esto evita un poco de codificación, pero no mucho; en general, es mejor hacer un demonio con un script de shell.
Desde una perspectiva histórica,
/sbin/reboot
y los niveles de ejecución nunca existieron en Darwin / OS X yrc.shutdown
está en desuso junto con el resto derc
ahora quelaunchd
es el jefe. Es posible que pueda usar rc.shutdown en Tiger o anterior (no tengo una de esas imágenes a mano para verificar en este momento) Lion ciertamente ha eliminado todos los vestigios de rc.d e init.d.Es posible que desee ver si Sleepwatcher ayudaría en su caso. No lo he usado en mucho tiempo, pero ciertamente tiene como objetivo resolver su dilema.
fuente