¿Cómo cerrar aplicaciones en suspensión?

Tengo una aplicación de administración de contraseñas (KeePassX) cuya copia de seguridad sincronizo a través de Dropbox en varias computadoras.

Sin embargo, la base de datos de contraseñas solo se puede abrir en una computadora a la vez por razones de bloqueo de archivos. Los problemas surgen cuando una computadora entra en suspensión y la aplicación se deja abierta en esta computadora, los bloqueos de la base de datos nunca se eliminan y, en el peor de los casos, hay cambios sin guardar en la base de datos.

¿Sería posible hacer que un programa solicite el cierre al dormir (como con el apagado) o grabar una macro que cierre el programa cuando la computadora se ponga en suspensión o se ponga en suspensión a través del menú de Apple?

Respuestas (2)

Es difícil para mí no cuestionar la validez de tu configuración (¡sincronización interrumpida!), pero... para hacer algo mientras duermes o te despiertas, deberías probar SleepWatcher de Bernhard Baehr (más contexto en Mac OS X Sugerencias ). Se está utilizando launchdpara el seguimiento.

[SleepWatcher] es una herramienta de línea de comandos (daemon) […] que monitorea el sueño, el despertar […] de una Mac. Se puede usar para ejecutar un comando de Unix cuando la Mac […] entra en modo de suspensión o se despierta, […]

Si tienes un poco de experiencia con terminales, creo que puedes configurarlo. Asegúrese de leer la sección bien escondida "Instalación para nuevos usuarios de SleepWatcher" enReadMe.rtf

Instalación de SleepWatcher :

wget http://www.bernhard-baehr.de/sleepwatcher_2.2.tgz
tar -xf sleepwatcher_2.2.tgz
sudo mkdir -p /usr/local/sbin /usr/local/share/man/man8
sudo cp sleepwatcher_2.2/sleepwatcher /usr/local/sbin
sudo cp sleepwatcher_2.2/sleepwatcher.8 /usr/local/share/man/man8
cp sleepwatcher_2.2/config/de.bernhard-baehr.sleepwatcher-20compatibility-localuser.plist ~/Library/LaunchAgents
launchctl load ~/Library/LaunchAgents/de.bernhard-baehr.sleepwatcher-20compatibility-localuser.plist
echo $'#!/bin/bash\ndate>/tmp/date'>~/.sleep
echo $'#!/bin/bash\nsay wake up'>~/.wakeup
chmod +x ~/.wakeup ~/.sleep

También puede probar SleepWatcher ejecutando /usr/local/sbin/sleepwatcher --verbose --sleep ~/.sleep --wakeup ~/.wakeup.

Puede salir de la aplicación ejecutando osascript -e 'quit app "Application Name"'o simplemente killall Application\ Name.