Answers:
唤醒: caffeinate -u -t 2
睡觉: pmset displaysleepnow
caffeinate
来打开显示器,但我想它可以工作。
要远程唤醒显示器,请尝试在命令行上运行AppleScript:
osascript -e 'tell application "System Events" to key code 123'
这将模拟按下光标键⬅ ,并使Mac OS X 10相信用户在计算机上处于活动状态。
此AppleScript基于以下答案:如何在AppleScript中自动进行按键操作?
如果您要使用遥控器唤醒Mac,并且显示器无法开机,请尝试唤醒助手。它不是针对这种情况而设计的,但可能会起作用。
Mac唤醒后,Wake Assist会模拟鼠标单击。在主显示屏的左上角单击两次鼠标。如果Wake Assist检测到用户,则不会执行任何操作,但是如果计算机唤醒并处于空闲状态,则会为您单击鼠标。
screencapture
等待几分钟后,我仍然得到黑色图像。
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
'#################################################之后的所有内容完成测试后,即可删除##########'。
date -jv+15S
将从现在起未来15秒计算日期。该-j
开关可防止date
尝试设置系统时钟。
date -jv+15S "+%m/%d/%Y %H:%M:%S"
会将以后的15秒设置为的正确格式pmset
。
哦,我希望我有足够的代表来对@wuc的答案进行10次投票,以解决这个令人发指的令人沮丧的问题(或者至少可以用应有的赞美发表一个简单的评论)。
苹果公司以其家长式的智慧,添加了一个“功能”,有意使它难以在Lion和Mountain Lion 上唤醒显示。对于希望远程唤醒显示器(使用IR遥控器或通过VNC)与Mac交互的用户来说,这使生活变得更加艰难。由于某些原因,这在OS X 10.8.2中变得更加明显。
使用pmset
对我来说是一个奇妙的解决方法。
步骤1:使用登录到远程计算机ssh myname@192.168.1.2
(用适当的用户名和ip代替远程Mac)。
第2步:使用唤醒显示屏pmset schedule wake "06/27/2013 04:20:00"
(选择适当的将来日期)。
如果您不想使用gdate,请选择:
将此代码放在主文件夹中的“ wakeup.sh”之类的文件中:
shopt -s expand_aliases
#NB: 7 is the waiting interval. Works for me. Increase as needed.
alias myDate='date -v+7S "+%m/%d/%Y %H:%M:%S"'
echo MacBook will wake up at: `myDate`
echo yourMacPW | sudo -S pmset schedule wake "`myDate`"
如果要自动执行此过程以在Windows计算机上运行:
编写这样的批处理文件:
@echo off
c:
cd "C:\Program Files (x86)\Aquila Technology\WakeOnLAN"
:tryAgain
wakeonlanc.exe -w -mac 00:00:00:00:00:00
ping 192.168.1.101 -n 1 | find "unreachable"
if %ERRORLEVEL% EQU 0 GOTO tryAgain
cd C:\putty
putty.exe -ssh 192.168.1.101 -l yourUser -pw yourMacPW -m c:\putty\macWake.txt
您需要更改的内容:您的IP,您的MAC地址,“无法访问”一词可能不是您所获得的-您可能会“超时”。用纯文本存储root密码当然不是一个好主意,但这是如何从Windows到OSX完全自动地进行操作。