Halten Sie einen Mac vom Ruhezustand ab, während ein Bash-Skript ausgeführt wird, und lassen Sie ihn nach Abschluss des Vorgangs wie gewohnt in den Ruhezustand wechseln


13

Ich muss meinen Mac nachts aufwachen und einen Rsync ausführen, um ihn zu sichern. Dies wird über Energiesparmodus> Zeitplan konfiguriert.

Es scheint jedoch, dass es wieder in den Ruhezustand wechselt, bevor etwas erledigt werden kann. Daher muss ich den Ruhezustand während der Ausführung des Bash-Skripts beenden, von dem aus rsync ausgeführt wird.

Ich dachte, der beste Weg (wenn es möglich ist) ist, einen Befehl auszugeben, um das Ruhezeitlimit auf "Nie" oder ein sehr langes Zeitlimit zu setzen, bevor es synchronisiert und dann wieder normal wird, wenn es abgeschlossen ist. Gibt es dafür eine bessere Lösung?


Sollte auf Superuser sein?
Kimvais

Antworten:


18

Koffeinat

Beispielsweise:

caffeinate -i rsync -avz someuser@somehost:somefolder /some/local/folder

Von der Manpage:

EXAMPLE
     caffeinate -i make
        caffeinate forks a process, execs "make" in it, and holds an
        assertion that prevents idle sleep as long as that process
        is running.

Siehe man caffeinatefür Details.


11

Mac OS X 10.8 (Mountain Lion) und höher

Verwenden Sie den caffeinateBefehl. Siehe Nathan Longs Antwort oder man caffeinatefür Details.

Mac OS X 10.7 (Lion) und früher

Es ist in der Handbuchseite vergraben, aber pmset hat einen sehr einfachen Modus, um den Schlaf zu verhindern. Wenn Sie den Befehl ausführen, pmset noidlebleibt Ihr Mac wach, bis dieser Vorgang abgebrochen wird. So verwenden Sie es in einem Skript:

# launch process to prevent sleep and move it to the background
pmset noidle &
# save the process ID
PMSETPID=$!

... do stuff here ...
... don't fall asleep ...
... watch out for that tree!
... ok we're free and clear now ...

# kill pmset so the computer can sleep if it wants to
kill $PMSETPID

Dies ist besser als die Verwendung von pmset, um Ihre Schlafeinstellungen zu ändern. Dies erfordert Root-Zugriff und (vorausgesetzt, Sie möchten ein guter Bürger sein) eine Möglichkeit, die aktuellen Einstellungen zu erkennen und sie zurückzusetzen, wenn Sie fertig sind.


2
pmset noidleist veraltet: Die Manpage sagt : This argument is deprecated in favor of caffeinate(8). Siehe meine Antwort.
Nathan Long

4

Versuchen

man pmset

:-)

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.