MacBook Pro 2010 con OS X Lion.
¿Es posible ejecutar scripts en los eventos de suspensión y activación?
Mi aplicación específica es que tengo volúmenes Truecrypt sincronizados con Dropbox que uso regularmente tanto en mi MacBook como en mi iMac. Raramente apago mi MBP ya que cerrar la tapa es mucho más rápido y fácil, pero esto significa que tengo que recordar desmontar mis volúmenes Truecrypt y dejar que se vuelvan a sincronizar antes de cerrar mi MBP. Es lo suficientemente trivial como montar / desmontar los scripts, pero me gustaría ir un paso más allá y hacer que estos scripts se ejecuten automáticamente.
fuente
SleepWatcher puede ser de utilidad.
De la descripción: se puede usar para ejecutar un comando Unix cuando la Mac o la pantalla de la Mac se pone en modo de suspensión o se despierta, después de un tiempo determinado sin interacción del usuario o cuando el usuario reanuda la actividad después de un descanso o cuando el poder El suministro de un portátil Mac está conectado o desconectado. También puede enviar la Mac al modo de suspensión o recuperar el tiempo transcurrido desde la última actividad del usuario.
Me está funcionando bien en 10.6.8. Varias versiones están disponibles para admitir 10.1 (!) Hasta 10.7
fuente
brew install sleepwatcher
. Y mira esta publicación , es muy útil. La utilidad SleepWatcher también es compatible con OS X El Capitan (10.11).Esta es mi propia aplicación, así que considere eso, pero ControlPlane tiene la capacidad de realizar acciones basadas en Sleep / Wake. Lo encontrará en http://www.controlplaneapp.com/ .
ControlPlane es una bifurcación de MarcoPolo y se ha actualizado para ejecutarse en Snow Leopard y Lion.
fuente
Desarrollé el siguiente Launch Daemon simple para proporcionar un activador 'wake' para scripts en Leopard:
Puede reemplazar 'decir w' con su código. Escribo una fecha en z pero puedes cambiar esto para escribir cualquier cosa. Es posible que deba aumentar 'ExitTimeOut' para algunos scripts. My Launch Daemon reside en /Library/LaunchDaemons/wake-alert.plist
Launch Daemon observa DirectoryService.server.log y escribe en un archivo temporal siempre que el archivo esté vacío. El archivo se borra con una entrada de registro 'Suspender' y con Apagar.
Si usa 'cambio rápido de usuario' para dormir, encontrará que los scripts que requieren un usuario conectado intentarán ejecutarse demasiado pronto y fallarán a menos que modifique el Launch Daemon, tal vez grep 'Succeeded' en 'secure.log'.
fuente
/Library/Logs/DirectoryService/DirectoryService.server.log
no existe en High Sierra (10.13).Otro programa que puede descubrir y sentirse tentado a probar es EventScripts . Aunque es un programa muy impresionante que recomendaría en general, después de probarlo para este propósito, NO parece ser capaz de activar scripts lo suficientemente rápido como para que se ejecuten antes de que su Mac se vaya a dormir, y en su lugar el script de sueño se activará. no se ejecutará hasta que la Mac se haya despertado, lo que (obviamente) anula el propósito.
Espero salvarlo a usted y a cualquier otra persona que lea esto las horas de prueba que me llevó llegar a esta conclusión. Lamento tener que decir que falló, sin embargo, porque en muchos aspectos es un programa muy bien diseñado y bastante potente y flexible. También es bastante económico ($ 3). Sin embargo, el rendimiento de bajo nivel no parece estar ahí para ejecutar un script antes de dormir.
Por otro lado, en mis pruebas (hasta ahora), el sleepwatcher parece ser bastante confiable y rápido. También es gratis, lo cual es increíble. Seguiré probando y, si a veces no funciona, actualizaré mi respuesta y seguiré probando otras opciones.
ACTUALIZACIÓN He no encontrado sleepwatcher que sea fiable, ya que la escritura originalmente esta respuesta, a pesar de que inicialmente parecía estar funcionando. En mi caso, no necesito ejecutar scripts arbitrarios, sino expulsar unidades externas. He encontrado una aplicación pequeña y económica que hasta ahora funciona muy bien: Jettison . Esto se ha convertido rápidamente en una de las pocas utilidades sin las que no puedo vivir. Si sus necesidades son las mismas que las mías, creo que valdrá la pena los pocos dólares que cobran.
fuente
WakeWatcher es una sencilla aplicación de fondo sin rostro de OS X que creé para solucionar este problema. Se ejecuta
~/.onwake
cada vez que se detecta estela. Luego puede poner los comandos para montar / volver a montar sus unidades en ese script.WakeWatcher es adecuado para su uso como elemento de inicio de sesión. No es muy sofisticado, pero es gratis y simple.
Ejecutar scripts en modo de suspensión sería una simple adición, pero me preocupa el tiempo disponible para que los scripts se completen antes de que el sistema realmente duerma. Si realmente lo necesita, abra un problema con el proyecto github y lo agregaré.
fuente