wucが書いた:
使用できます
pmset schedule wake "01/01/2012 20:00:00"
それ以外の場合は「起動中」のMacでスリープ状態のディスプレイを起動します。日付/時刻の部分を現在の時刻に置き換えます。
しかし、10.9.1を実行している2008年頃のiMacまたは10.9.2を実行している2010年後半のMacBook Airでは、それはうまくいきませんでした。これがMavericksのエネルギー管理とハードウェアのどちらに関係するのか、あるいは何が関係するのかはわかりません。
ウェイク時間を未来の15秒に設定することで、機能させることができました。たまに、12または13という低い設定でも動作するようになりましたが、信頼性はありませんでした。しかし、私がその時に気付いていなかった他の要因があったかもしれませんが、15は機能しましたので、15を使用しました
しかし、プログラムで15秒後の未来をどのように計算しますか?
私gdate
はGNU Coreutilsパッケージから使用しました(date
OS Xではこれを行うことができるかもしれませんが、可能であれば、方法がわからず、すでにgdate
インストールしていました):
[ エイリアスのdate
代わりにgdate
set_wake_time = 'date "-v + $ {OFFSET} S" "+%D%T"'を使用するには]
私が使用したスクリプトは次のとおりです。
#!/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
'################################################以降のすべて######### 'は、テストが終了したら削除できます。