Wie schließe ich Anwendungen im Ruhezustand?

Ich habe eine Passwortverwaltungsanwendung (KeePassX), deren Backup ich über Dropbox auf mehreren Computern synchronisiere.

Aus Dateisperrgründen kann die Passwortdatenbank jedoch nur auf jeweils einem Computer geöffnet sein. Probleme treten auf, wenn ein Computer in den Ruhezustand wechselt und die Anwendung auf diesem Computer geöffnet bleibt, die Datenbanksperren nie entfernt werden und im schlimmsten Fall ungespeicherte Änderungen in der Datenbank vorhanden sind.

Wäre es möglich, ein Programm zu erstellen, das das Schließen im Ruhezustand veranlasst (wie beim Herunterfahren) oder ein Makro aufzeichnet, das das Programm schließt, wenn sich der Computer in den Ruhezustand versetzt oder über das Apple-Menü in den Ruhezustand versetzt wird?

Antworten (2)

Es fällt mir schwer, die Gültigkeit Ihres Setups nicht in Frage zu stellen (gebrochene Synchronisierung!), aber ... um etwas im Schlaf oder im Wachzustand zu tun, sollten Sie SleepWatcher von Bernhard Baehr ausprobieren (mehr Kontext unter Mac OS X Hints ). Es wird launchdzur Überwachung verwendet.

[SleepWatcher] ist ein Befehlszeilentool (Daemon) […], das den Schlaf und das Aufwachen […] eines Mac überwacht. Es kann verwendet werden, um einen Unix-Befehl auszuführen, wenn der Mac […] in den Schlafmodus wechselt oder aufwacht, […]

Wenn Sie ein wenig Terminalerfahrung haben, können Sie es meiner Meinung nach einrichten. Stellen Sie sicher, dass Sie den gut versteckten Abschnitt „Installation für neue SleepWatcher-Benutzer“ in gelesen habenReadMe.rtf

SleepWatcher installieren :

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

Sie können SleepWatcher auch testen, indem Sie ausführen /usr/local/sbin/sleepwatcher --verbose --sleep ~/.sleep --wakeup ~/.wakeup.

Sie können die Anwendung beenden, indem Sie osascript -e 'quit app "Application Name"'einfach oder ausführen killall Application\ Name.