จอแสดงผลที่ออกมาจากจอเทอร์มินัลการปลุกทั่วไป


20

นี่เป็นคำถามสองส่วน คำถาม "วิธีการ" ที่ใช้งานได้จริงเป็นคำถามแรกจากนั้นฉันจะขอคำแนะนำการกำหนดค่า

ครั้งแรกฉันวางจอแสดงผลของฉันไปนอนในเวลากลางคืนและฉันต้องการที่จะสามารถปลุกจอแสดงผลจากระยะไกล มียูทิลิตี้บรรทัดคำสั่งที่ฉันสามารถใช้เพื่อปลุกผ่าน SSH ได้หรือไม่? ฉันรู้เกี่ยวกับ WakeOnLan แต่ดูเหมือนว่าเกินความเป็นจริง

ประการที่สองเหตุผลทั้งหมดที่ฉันต้องการปลุกจอแสดงผลของฉันจากระยะไกลเกี่ยวข้องกับการเปลี่ยนแปลงการตั้งค่าการประหยัดพลังงานของ Lion รีโมทอินฟราเรดของ Apple ไม่ปลุกจอแสดงผลอีกต่อไป นี่เป็นข้อตกลงที่ยิ่งใหญ่สำหรับเครื่องที่ผมซื้อมาเพื่อเป็นคอมพิวเตอร์ตั้งโต๊ะ / โฮมเธียเตอร์รวมเพราะมันเอาชนะจุดประสงค์ได้ครึ่งหนึ่ง ดังนั้นใครบ้างมีความคิด / ข้อเสนอแนะว่าจะทำอย่างไรกับเรื่องนี้? นี่เปิดกว้างแล้วฉันรู้

คำตอบ:


25

วิธีที่ง่ายที่สุดในการทำเช่นนี้กับ SSH คือการใช้caffeinate -u(มีให้ตั้งแต่ OS X 10.9 ฉันคิดว่า) เพื่อจำลองกิจกรรมของผู้ใช้

เพิ่มการตั้งค่าสถานะ-t 5เพื่อระบุการหมดเวลา 5 วินาที (มิฉะนั้นคุณจะต้องctrl+ cออกจากคาเฟอีนดูเหมือน)


1
คุณไปที่ (+) สำหรับคำตอบของคุณว่าไม่มีใครสนใจ ฉันมีตัวตนของฉันมากมายที่ ppl มาถามคำถามใหม่เพื่อกลับมาตรวจสอบคำตอบ
Ruskes

1
ตามหน้า man (ใน High Sierra) 5 วินาทีเป็น defaul สำหรับ-uตัวเลือก: หากหมดเวลาไม่ได้ระบุด้วยตัวเลือก '-t' แล้วการยืนยันนี้จะดำเนินการโดยเริ่มต้นจากการหมดเวลา 5 วินาที
JJarava

9

คุณสามารถใช้ได้

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

เพื่อปลุกจอแสดงผลขณะหลับบน Mac "ตื่น" เป็นอย่างอื่น แทนที่ส่วนวันที่ / เวลาด้วยเวลาปัจจุบันแน่นอน


8

ตื่น: 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 ของคุณโดยใช้ระยะไกลและการแสดงผลที่ไม่ได้เปิดเครื่องลองตื่น Assist ไม่ได้ออกแบบมาสำหรับสถานการณ์นี้ แต่อาจใช้งานได้

Wake Assist จำลองการคลิกเมาส์หลังจากที่ Mac ของคุณตื่นขึ้นมา คลิกเมาส์สองครั้งที่ด้านบนซ้ายของจอแสดงผลหลักของคุณ Wake Assist จะไม่ทำอะไรเลยหากตรวจพบผู้ใช้ แต่หากคอมพิวเตอร์ตื่นและไม่มีการใช้งานเมาส์จะถูกคลิกเพื่อคุณ


1
สิ่ง AppleScript ไม่ได้ผลสำหรับฉัน ฉันได้รับภาพสีดำscreencaptureแม้กระทั่งหลังจากที่รอไม่กี่นาที
lhf

คุณลองกดปุ่มจำลองอื่น ๆ - บางทีปุ่มเคอร์เซอร์ไม่เพียงพอหรือไม่? คุณต้องการรหัสผ่านเมื่อตื่นหรือไม่?
เกรแฮมมิลน์

1
ทำงานได้ดีสำหรับฉันใน OS X 10.6
claytron

3

wuc wrote:

คุณสามารถใช้ได้

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

เพื่อปลุกจอแสดงผลขณะหลับบน Mac "ตื่น" เป็นอย่างอื่น แทนที่ส่วนวันที่ / เวลาด้วยเวลาปัจจุบันแน่นอน

อย่างไรก็ตามนั่นไม่ได้ผลสำหรับฉันใน iMac ประมาณปี 2008 ที่ใช้ 10.9.1 หรือ MacBook Air รุ่น 2010 ที่ช้าที่ใช้งาน 10.9.2 ฉันไม่แน่ใจว่าสิ่งนี้เกี่ยวข้องกับการจัดการพลังงานของ 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จากความพยายามที่จะตั้งนาฬิการะบบ
ไมค์

1
คำสั่งที่date -jv+15S "+%m/%d/%Y %H:%M:%S"จะทำให้ 15 pmsetวินาทีในอนาคตในรูปแบบที่ถูกต้องสำหรับ
แอรอน D

ตาม OSX 10.10.3 pmset manpage มีตัวเลือก 'pmset ญาติวินาทีปลุก' เช่นกัน อาจคุ้มค่าที่จะตรวจสอบเช่นกัน
JS

1

โอ้ฉันหวังว่าฉันจะมีตัวแทนมากพอที่จะตอบคำถามของ upvote @ wuc ใน 10 ครั้งที่สมควรได้รับสำหรับปัญหาที่น่ารำคาญอย่างน่ารำคาญนี้

Apple ในภูมิปัญญาของบิดาได้เพิ่ม "ฟีเจอร์" ที่ทำให้การปลุกจอแสดงผลบน 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"(พร้อมวันที่ที่คุณเลือกในอนาคตที่เหมาะสม)


ชนิดของฉันเห็นด้วยและผมมีความสุขที่ได้อ่านคำตอบของคุณ แต่บางทีอาจจะพิจารณาapple.stackexchange.com/help/how-to-answer
DA Vincent

0

ตัวเลือกหากคุณไม่ต้องการใช้ gdate:

  • เปิดใช้งาน SSHD (ล็อกอินระยะไกล) ภายใต้การตั้งค่าระบบการแชร์
  • เปิดใช้งาน 'ปลุกการเข้าถึงเครือข่าย' ภายใต้การตั้งค่าระบบ Energy Saver

ใส่รหัสนี้ในไฟล์เช่น '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'
  • เขียน batchfile เช่นนี้

    @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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.