Дисплей пробудження з терміналу, загальне пробудження


20

Це питання з двох частин. Спочатку потрібне практичне запитання "як це зробити", а потім я прошу пропозиції щодо конфігурації.

По-перше, я поміщав мої дисплеї спати вночі, і я хотів би мати можливість розбудити дисплей дистанційно. Чи є утиліта командного рядка, яку я можу використовувати, щоб пробудити її через SSH? Я знаю про WakeOnLan, але це здається непосильним.

По-друге, вся причина, коли я хочу дистанційно розбудити дисплей, пов'язана з тим, як змінилися налаштування енергозбереження Lion. Інфрачервоний пульт Apple більше не прокидає дисплей. Це величезна угода для машини, яку я спочатку придбав для комбінованого ПК настільного / домашнього кінотеатру, оскільки вона перемагає половину свого призначення. Отже, чи є у когось ідеї / пропозиції, що з цим робити? Це я відкритий, я знаю.

Відповіді:


25

Найпростіший спосіб зробити це через SSH - це використовувати caffeinate -u(доступний з OS X 10.9, я думаю) для імітації діяльності користувачів.

Додайте прапор, -t 5щоб вказати час очікування в 5 секунд (інакше вам доведеться ctrl+ cвийти з кофеїну, здається).


1
там ти йдеш (+) на свою відповідь, на яку ніхто не звертав уваги. У мене так багато тих, хто сам, коли ppl приходить, задають новіше питання, щоб повернутися, щоб перевірити відповідь.
Ruskes

1
Згідно з довідковою сторінкою (у Високій Сьєррі), 5 сек - це значення за замовчуванням для -uопції: Якщо тайм-аут не вказаний опцією '-t', то це твердження приймається за замовчуванням 5 секунд таймауту
JJarava

9

Можна використовувати

pmset schedule wake "01/01/2012 20:00:00"

щоб розбудити сплячий дисплей на інакше "прокинутому" Mac. Замініть частину дати / часу поточним часом курсу.


9

Прокидання: caffeinate -u -t 2

Сон: pmset displaysleepnow


Приємне рішення! Ніколи не використовував caffeinateдля вмикання дисплея, але я думаю, він працює.
JMY1000

7

Пробудження дисплея з командного рядка

Для віддаленого пробудження дисплея спробуйте запустити AppleScript в командному рядку:

osascript -e 'tell application "System Events" to key code 123'

Це буде імітувати натискання клавіші курсору і повинно змусити Mac OS X 10 повірити, що користувач активний на комп’ютері.

Цей AppleScript заснований на відповіді: Як я автоматизую натискання клавіш у AppleScript?

Пробудження дисплея після пробудження за допомогою пульта дистанційного керування

Якщо ви пробуджуєте свій Mac за допомогою пульта, а дисплей не включається, спробуйте Wake Assist . Він не розроблений для цієї ситуації, але може просто працювати.

Wake Assist імітує клацання миші після того, як ваш Mac прокинеться. Клацніть мишу двічі у верхньому лівому куті вашого основного дисплея. Програма Wake Assist нічого не зробить, якщо він виявить користувача, але якщо комп'ютер прокидається і не працює, то на вас клацніть мишкою.


1
Річ AppleScript для мене не працювала. Я отримую чорне зображення screencaptureнавіть після декількох хвилин очікування.
lhf

Ви пробували будь-які інші імітовані натискання клавіш - можливо, клавіші курсору недостатньо? Вам потрібен пароль під час пробудження?
Грем Мілн


3

wuc написав:

Можна використовувати

pmset schedule wake "01/01/2012 20:00:00"

щоб розбудити сплячий дисплей на інакше "прокинутому" Mac. Замініть частину дати / часу поточним часом курсу.

Однак, це не спрацювало для мене в iMac, що працює в районі 2008 року під керуванням 10.9.1 або в кінці 2010 року MacBook Air під керуванням 10.9.2. Я не впевнений, чи це пов'язане з управлінням енергією Mavericks або обладнанням, чи що.

Мені вдалося змусити його працювати, встановивши час неспання 15 секунд у майбутнє. Інколи мені вдалося змусити його працювати з налаштуваннями на рівні 12 або 13, але не надійно. Але, можливо, були й інші фактори, яких я тоді не усвідомлював, але 15 працювало, тому я використовував 15.

Але як ви обчислюєте програмно 15 секунд у майбутньому?

Я використовував gdateпакет GNU Coreutils ( dateв OS X це могло б зробити, але якщо це можливо, я не знаю як, і я вже gdateвстановив):

[використовувати dateзамість gdateпсевдоніма set_wake_time = 'дата "-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від спроб встановити системний годинник.
Майк

1
Команда date -jv+15S "+%m/%d/%Y %H:%M:%S"приведе 15 секунд у потрібний формат для pmset.
Аарон Д

Відповідно до маніпуляцій OSX 10.10.3 вечора, також є опція "pmset відносно секунд пробудження". Можливо, варто також дослідити.
JS.

1

О, як би я хотів, щоб у мене було достатньо репортажу, щоб підтвердити відповідь @ wuc 10 разів, що це заслуговує на цю дивно розчарувальну проблему (або, принаймні, мати можливість залишити простий коментар із похвалою, яку вона заслуговує).

Apple, у своїй патерналістичній мудрості, додала "особливість", яка навмисно ускладнювала пробуджувати показ на Леві та Гірському Леві. Це значно ускладнило життя тим, хто бажає дистанційно пробудити дисплей (за допомогою ІЧ-пульта або через 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"(з відповідною майбутньою датою на ваш вибір).


Я згодна, і мені сподобалось читати вашу відповідь, але, можливо, врахуйте apple.stackexchange.com/help/how-to-answer .
DA Vincent

0

Варіант, якщо ви не хочете використовувати gdate:

  • Увімкніть SSHD (віддалений вхід) у налаштуваннях системи, спільний доступ
  • Увімкніть "Пробудьте доступ до мережі" в розділі Налаштування системи, Енергозбереження

помістіть цей код у такий файл, як '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`"
  • Зробіть його виконуваним за допомогою "chmod + x wakeup.sh" і введіть свій пароль, якщо вам це потрібно. В іншому випадку скиньте відлуння і -S.

Якщо ви хочете автоматизувати цей процес для роботи з машини Windows:

  • Отримайте PuTTY та командний рядок інструмент WakeOnLan (тобто Aquila у SourceForge)
  • Створіть текстовий файл у одному рядку, що містить './wakeup.sh'
  • написати такий пакетний файл:

    @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-адреса, слово "недоступне" може бути не тим, що ви отримаєте - у вас може вийти "вичерпано". Збереження кореневого пароля у простому тексті - це, звичайно, не дуже гарна ідея, але це як зробити це повністю автоматично з Windows до OSX.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.