crontab, um osx aus dem schlaf zu erwecken

18919
Nippysaurus

Ich habe ein Crontab, das früh am Morgen (nachdem ich eingeschlafen bin) ein bestimmtes Programm startet und es später am Morgen wieder schließt (bevor ich aufwache). Mein iMac führt das Crontab-Skript jedoch nicht aus, während es schläft.

Ich sehe, dass es einige Einstellungen gibt, um den Computer zu einem bestimmten Zeitpunkt wieder aufzuwecken und wieder in den Ruhezustand zu versetzen.

15

5 Antworten auf die Frage

21
jtb

cronwird nicht ausgeführt, während der Computer schläft. Daher haben Sie keine Möglichkeit, einen Crontab-Eintrag zum Aufwecken des Computers zu verwenden. Das heißt, Sie können den Computer so einstellen, dass er nur ein oder zwei Minuten vor Ihrer Cron-Aufgabe in Einstellungen >> Energiesparmodus >> Zeitplan aktiviert wird.

Es lohnt sich auch darauf hinzuweisen, dass Apple seit Tiger die meisten geplanten Jobs cronund Skripte init.rcin den launchdProzess verschoben hat . Es bietet detailliertere (jedoch umständlichere) Kontrollmöglichkeiten (durch mehrere plist-Dateien). Es werden auch automatisch Aufgaben ausgeführt, die übersehen wurden, weil der Computer beim Aufwachen im Ruhezustand war. Schauen Sie sich die Zeitplan-Jobs- Seite von Apple an .

Die Verbindung ist unterbrochen. retracile vor 12 Jahren 0
Tolle Antwort, aber können Sie es wecken, wenn der Laptop geschlossen ist? User vor 7 Jahren 1
4
user495470

Eine andere Möglichkeit, das Aufwachen aus dem Schlaf zu planen, ist die Verwendung von pmset:

sudo pmset repeat wakeorpoweron MTWRFSU 03:45:00 

launchd kann einen Computer nicht aus dem Ruhezustand aufwecken, führt jedoch nach dem Aufwachen im Ruhezustand geplante Jobs aus. Wenn andere Benutzer danach suchen, können Sie diese Liste beispielsweise als speichern ~/Library/LaunchAgents/some.label.plist:

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>some.label</string> <key>ProgramArguments</key> <array> <string>say</string> <string>a</string> </array> <key>StartCalendarInterval</key> <dict> <key>Hour</key> <integer>23</integer> <key>Minute</key> <integer>59</integer> </dict> </dict> </plist> 

Dann laufen launchctl load ~/Library/LaunchAgents/some.label.plist.

3
Richard Hoskins

Sie können den Macintosh so einstellen, dass er im Einstellungsbereich "Energie sparen" aktiviert wird. Siehe Schaltfläche "Zeitplan".

2
Bruce McLeod

Vielleicht möchten Sie in Anacron nachschauen

Anacron führt die regelmäßigen, täglichen, wöchentlichen und monatlichen Aufgaben auf Ihrem Mac aus, auch wenn der Computer (z. B. ein Laptop) die meiste Zeit im Schlaf oder im Ruhezustand verbringt. Anacron prüft beim Neustart und bei laufendem Computer alle 60 Minuten, ob die verschiedenen Skripts regelmäßig überfällig sind, und führt sie bei Bedarf aus. Der Vorteil von Anacron gegenüber vielen anderen Lösungen für dieses Problem besteht darin, dass es als richtiger Unix-Hintergrundprozess ausgeführt wird, kein Benutzereingriff erforderlich ist und die regelmäßigen Skripts verwendet werden.

Eine andere Anwendung, die den Trick tun könnte, ist Erwachen

1
John T

cron wird nicht ausgeführt, wenn sich OSX im Schlafmodus befindet.

Vielleicht möchten Sie in cronwake (muss durch google translate laufen, da die Seite japanisch ist, glaube ich) und anacron suchen, oder Sie können einfach die Energy SaverAnwendung verwenden, um eine Aktivierungszeit für die Ausführung des Skripts zu planen und dann wieder in den Ruhezustand zu setzen.