MacBook Pro 2010 mit OS X Lion.
Ist es möglich, Skripte für Schlaf- und Wach-Ereignisse auszuführen?
Meine spezielle Anwendung ist, dass ich Dropbox-synchronisierte Truecrypt-Volumes habe, die ich regelmäßig sowohl auf meinem MacBook als auch auf meinem iMac verwende. Ich habe meinen MBP selten heruntergefahren, da das Schließen des Deckels viel schneller und einfacher ist. Dies bedeutet jedoch, dass ich die Bereitstellung meiner Truecrypt-Volumes aufheben und sie synchronisieren muss, bevor ich meinen MBP schließe. Das Ein- und Aushängen von Skripten ist trivial genug, aber ich möchte noch einen Schritt weiter gehen und diese Skripten automatisch ausführen lassen.
quelle
SleepWatcher kann von Nutzen sein.
Aus der Beschreibung: Es kann verwendet werden, um einen Unix-Befehl auszuführen, wenn der Mac oder das Display des Mac in den Energiesparmodus wechselt oder nach einer bestimmten Zeit ohne Benutzerinteraktion aufwacht oder wenn der Benutzer nach einer Unterbrechung oder bei Stromausfall die Aktivität wieder aufnimmt Lieferung eines Mac Notebooks ist angeschlossen oder getrennt. Sie können den Mac auch in den Ruhemodus versetzen oder die Zeit seit der letzten Benutzeraktivität abrufen.
Es funktioniert gut für mich am 10.6.8. Verschiedene Versionen unterstützen 10.1 (!) Bis 10.7
quelle
brew install sleepwatcher
. Und siehe diesen Beitrag , es ist sehr hilfreich. Das Dienstprogramm SleepWatcher unterstützt auch OS X El Capitan (10.11).Dies ist meine eigene App, aber ControlPlane hat die Möglichkeit, Aktionen basierend auf Sleep / Wake auszuführen. Sie finden es unter http://www.controlplaneapp.com/ .
ControlPlane ist eine Abzweigung von MarcoPolo und wurde für Snow Leopard und Lion aktualisiert.
quelle
Ich habe den folgenden einfachen Launch Daemon entwickelt, um einen Wake-Trigger für Skripte auf Leopard bereitzustellen:
Sie können "say w" durch Ihren Code ersetzen. Ich schreibe ein Datum bis z, aber Sie können dies ändern, um etwas zu schreiben. Möglicherweise müssen Sie 'ExitTimeOut' für einige Skripte erhöhen. Mein Launch Daemon befindet sich unter /Library/LaunchDaemons/wake-alert.plist
Der Launch Daemon überwacht DirectoryService.server.log und schreibt in eine temporäre Datei, sofern die Datei leer ist. Die Datei wird durch einen Protokolleintrag "Ruhezustand" und durch Herunterfahren gelöscht.
Wenn Sie im Ruhezustand die Option "Schnelle Benutzerumschaltung" verwenden, werden Sie feststellen, dass Skripts, für die ein angemeldeter Benutzer erforderlich ist, zu früh ausgeführt werden und fehlschlagen, es sei denn, Sie ändern den Launch Daemon - möglicherweise grep "Succeeded" in "secure.log".
quelle
/Library/Logs/DirectoryService/DirectoryService.server.log
existiert nicht in High Sierra (10.13).Ein weiteres Programm, das Sie möglicherweise entdecken und ausprobieren möchten , ist EventScripts . Obwohl es ein sehr beeindruckendes Programm ist, das ich im Allgemeinen empfehlen würde, scheint es nach dem Testen für diesen Zweck NICHT in der Lage zu sein, Skripte schnell genug auszulösen, damit sie ausgeführt werden können, bevor Ihr Mac in den Ruhezustand wechselt, und stattdessen wird das Skript in den Ruhezustand versetzt Erst wenn der Mac aufgewacht ist, läuft er, was (offensichtlich) den Zweck zunichte macht.
Ich hoffe, dass ich Sie und alle anderen, die dies lesen, in den Stunden des Testens retten kann, in denen ich zu diesem Schluss gekommen bin. Es tut mir leid, dass ich sagen muss, dass es fehlgeschlagen ist, weil es in vielerlei Hinsicht ein wirklich gut gestaltetes und recht leistungsfähiges und flexibles Programm ist. Es ist auch recht günstig (3 Dollar). Die Leistung auf niedrigem Niveau scheint jedoch nicht vorhanden zu sein, um ein Skript vor dem Einschlafen auszuführen.
Andererseits hat sich Sleepwatcher in meinen Tests (bisher) als ziemlich zuverlässig und schnell erwiesen . Es ist auch kostenlos, was großartig ist. Ich werde weiter testen und wenn ich finde, dass es manchmal nicht funktioniert, werde ich meine Antwort aktualisieren und weitere Optionen testen.
UPDATE Ich habe nicht Sleepwatcher werden konsequent zuverlässig gefundenda ursprünglich diese Antwortschreiben, obwohl es anfangs arbeiten schien. In meinem Fall muss ich keine willkürlichen Skripte ausführen, sondern nur externe Laufwerke auswerfen. Ich habe eine kleine und kostengünstige App gefunden, die dies bisher sehr gut macht: Jettison . Dies ist sehr schnell zu einem der wenigen Dienstprogramme geworden, ohne die ich nicht leben kann. Wenn Sie dieselben Bedürfnisse haben wie ich, werden Sie es wahrscheinlich für die wenigen Dollar, die sie verlangen, wert finden.
quelle
WakeWatcher ist eine einfache gesichtslose OS X-Hintergrundanwendung, die ich erstellt habe, um dieses Problem zu beheben . Es wird ausgeführt,
~/.onwake
wenn Wake erkannt wird. Sie können dann die Befehle zum Mounten / Remounten Ihrer Laufwerke in dieses Skript einfügen.WakeWatcher eignet sich als Login-Objekt. Es ist nicht sehr raffiniert, aber es ist kostenlos und einfach.
Das Ausführen von Skripten im Energiesparmodus wäre eine einfache Ergänzung, aber ich mache mir Sorgen darüber, wie viel Zeit für die Ausführung der Skripten zur Verfügung steht, bevor das System tatsächlich in den Energiesparmodus wechselt. Wenn Sie es wirklich brauchen, eröffnen Sie ein Problem mit dem Github-Projekt und ich werde es hinzufügen.
quelle