wuc ha scritto:
You can use
pmset schedule wake "01/01/2012 20:00:00"
to wake up a sleeping display on an otherwise "awake" Mac. Replace the date/time part with current time of course.
Tuttavia, ciò non ha funzionato per me su un iMac del 2008 circa con 10.9.1 o un MacBook Air in ritardo di 10.9.2. Non sono sicuro che questo abbia a che fare con la gestione energetica di Mavericks o con l'hardware, o cosa.
Sono riuscito a farlo funzionare impostando il tempo di attivazione su 15 secondi nel futuro. Occasionalmente sono riuscito a farlo funzionare con l'impostazione a partire da 12 o 13, ma non in modo affidabile. Ma potrebbero esserci stati altri fattori che non avevo realizzato al momento, ma 15 hanno funzionato, quindi ho usato 15.
Ma come calcoli 15 secondi nel futuro a livello di programmazione?
Ho usato gdate
dal pacchetto GNU Coreutils ( date
in OS X potrebbe essere in grado di farlo, ma se possibile, non so come, e ho già installato gdate
):
[per usare date
invece di gdate
usa alias set_wake_time = 'date "-v + $ {OFFSET} S" "+% D% T"']
Ecco lo script che ho usato:
#!/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
Tutto dopo il '####################################################### ############ 'può essere rimosso una volta terminato il test.