wuc schrieb:
Sie können verwenden
pmset schedule wake "01/01/2012 20:00:00"
um einen schlafenden Bildschirm auf einem ansonsten "wachen" Mac aufzuwecken. Ersetzen Sie den Datums- / Zeitteil durch die aktuelle Uhrzeit.
Auf einem iMac aus dem Jahr 2008 mit 10.9.1 oder einem MacBook Air aus dem Jahr 2010 mit 10.9.2 funktionierte dies jedoch nicht. Ich bin mir nicht sicher, ob dies etwas mit dem Energiemanagement von Mavericks oder der Hardware zu tun hat, oder was.
Ich konnte es zum Laufen bringen, indem ich die Weckzeit auf 15 Sekunden in der Zukunft einstellte. Gelegentlich konnte ich es mit einer Einstellung von nur 12 oder 13 zum Laufen bringen, aber nicht zuverlässig. Es mag aber auch andere Faktoren geben, die ich damals nicht erkannt habe, aber 15 haben funktioniert, also habe ich 15 verwendet.
Aber wie rechnet man programmatisch 15 Sekunden in die Zukunft?
Ich habe das gdate
aus dem GNU Coreutils-Paket verwendet ( date
in OS X könnte dies möglich sein, aber wenn es möglich ist, weiß ich nicht wie, und ich hatte es bereitsgdate
installiert):
[ date
anstelle von gdate
alias set_wake_time = 'date "-v + $ {OFFSET} S" "+% D% T"']
Hier ist das Skript, das ich verwendet habe:
#!/bin/zsh -f
# how many seconds into the future we want to wake the display
# 15 seems to work reliably. YMMV.
OFFSET=15
# to calculate the time, we need `gdate`
alias set_wake_time='/usr/local/bin/gdate --date "+${OFFSET} sec" "+%m/%d/%g %H:%M:%S"'
# this is where we set the wake command
# if it doesn't succeed the script will exit immediately
/usr/bin/sudo /usr/bin/pmset schedule wake "`set_wake_time`" || exit 1
# if you were not testing this, you'd probably want to end at the
# next line. Just remove the leading '#'
#exit 0
#######################################################
### Everything below this line is only needed during testing ###
# this tells the display to sleep
# because we can test waking the screen up unless it's asleep
pmset displaysleepnow
# for testing purposes: now the script will pause for $OFFSET seconds
sleep $OFFSET
# For testing purposes:
# after $OFFSET seconds, this sound will play 3 times.
# by that time, the display should be awake
# I did this to help me know when I had set OFFSET too low
afplay /System/Library/Sounds/Glass.aiff
afplay /System/Library/Sounds/Glass.aiff
afplay /System/Library/Sounds/Glass.aiff
# script is done
exit 0
Alles nach dem '############################################## ######### 'kann nach Abschluss des Tests entfernt werden.