wuc ha scritto:
Puoi usare
pmset schedule wake "01/01/2012 20:00:00"
per riattivare uno schermo per dormire su un Mac altrimenti "sveglio". Sostituisci la parte data / ora con l'ora corrente ovviamente.
Tuttavia, ciò non ha funzionato per me su un iMac del 2008 con il 10.9.1 o un MacBook Air del 2010 con il 10.9.2. Non sono sicuro che ciò abbia a che fare con la gestione energetica o l'hardware di Mavericks, o cosa.
Sono stato in grado di farlo funzionare impostando il tempo di veglia su 15 secondi nel futuro. Occasionalmente sono stato in grado di farlo funzionare con le impostazioni a partire da 12 o 13, ma non in modo affidabile. Ma potrebbero esserci stati altri fattori che non avevo realizzato in quel momento, ma 15 ha funzionato, quindi ho usato 15.
Ma come si calcolano 15 secondi nel futuro programmaticamente?
Ho usato gdate
dal pacchetto GNU Coreutils ( date
in OS X potrebbe essere in grado di farlo, ma se è possibile, non so come, e avevo già gdate
installato):
[da usare date
invece di gdate
usare 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.