wuc escribió:
Puede utilizar
pmset schedule wake "01/01/2012 20:00:00"
para despertar una pantalla dormida en un Mac que, por lo demás, está "despierto". Sustituya la parte de la fecha/hora por la hora actual, por supuesto.
Sin embargo, eso no me funcionó en un iMac de alrededor de 2008 que ejecutaba la versión 10.9.1 ni en un Macbook Air de finales de 2010 que ejecutaba la versión 10.9.2. No estoy seguro de si esto tiene algo que ver con la gestión de la energía de Mavericks o el hardware, o qué.
Conseguí que funcionara configurando la hora de despertar en 15 segundos en el futuro. Ocasionalmente pude conseguir que funcionara con el ajuste tan bajo como 12 o 13, pero no de forma fiable. Pero puede haber otros factores de los que no me di cuenta en ese momento, pero 15 funcionaba, así que usé 15.
Pero, ¿cómo se calculan 15 segundos en el futuro de forma programada?
Utilicé gdate
del paquete GNU Coreutils ( date
en OS X puede ser capaz de hacer esto, pero si puede, no sé cómo, y ya tenía gdate
instalado):
[para usar date
en lugar de gdate
use alias set_wake_time='date "-v+${OFFSET}S" "+%D %T"']
Aquí está el script que he utilizado:
#!/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
Todo lo que está después de la "#######################################################" puede ser eliminado una vez que haya terminado las pruebas.