กำหนดเวลาให้ Mac เข้าสู่โหมดสลีปเพียงครั้งเดียว


16

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

ดังนั้นบางครั้งฉันจะเข้านอน แต่ทิ้งการถ่ายโอนไฟล์และฉันต้องการให้ Mac นอนประมาณหนึ่งชั่วโมงจากนี้ ดังนั้นฉันจะไปเกี่ยวกับการทำเช่นนั้นโดยไม่ต้องกำหนดเวลาระยะยาวได้อย่างไร


1
หากคุณกำลังดาวน์โหลดภายในเทอร์มินัลคุณสามารถรวมทั้งคำสั่งที่คล้ายกับ: sudo sh -c 'wget http://download.com/file.zip; pmset sleepnow' คำสั่ง sleep นั้นจะถูกดำเนินการเมื่อ wget ออกจากเท่านั้น
Overbryd

คำตอบ:


24

pmset คำสั่ง terminal ควรทำสิ่งที่คุณต้องการ ต่อไปนี้จะทำให้คอมพิวเตอร์เข้าสู่โหมดสลีปเวลา 23:45:00 น. ในวันที่ 2 ธันวาคม 2014 คำสั่งจะต้องเรียกใช้จากบัญชีผู้ดูแลระบบแม้ว่า:

sudo pmset schedule sleep "12/02/14 23:45:00"

รูปแบบวันที่ MM / DD / YY ไม่สามารถเปลี่ยนแปลงได้ ดังนั้นหากคุณคุ้นเคยกับรูปแบบอื่นให้ใช้ความระมัดระวัง

หากคุณทำเช่นนี้เป็นประจำคุณสามารถเขียนฟังก์ชั่นและบันทึกลงใน ~/.profile:

# Schedule sleep in X minutes, use like: sleep-in 60
function sleep-in() {
  local minutes=$1
  local datetime=`date -v+${minutes}M +"%m/%d/%y %H:%M:%S"`
  sudo pmset schedule sleep "$datetime"
}

2
ฉันได้รับข้อผิดพลาดเมื่อเรียกใช้ฟังก์ชัน sleep-in:local:2: not an identifier: 23:35:31. ปรากฎ (อย่างน้อยในการติดตั้งของฉัน (zsh)) ที่คุณต้องห่อนิพจน์ backtick วันที่ในเครื่องหมายคำพูดคู่ ดังนั้นทำ: local datetime="`date -v+${minutes}M +"%m/%d/%y %H:%M:%S"`"
Matt Dodge

ฟังก์ชั่น Companion สำหรับการยกเลิก sleeps (แทนที่ "\ n" ด้วยบรรทัดใหม่จริง): function sleep-cancel-all() {\n NUM_OF_SLEEPS=$(pmset -g sched | wc -l)\n if [[ $NUM_OF_SLEEPS -gt 0 ]]; then\n # The first line of output is a header, ignore it.\n NUM_OF_SLEEPS=$(expr $NUM_OF_SLEEPS - 1)\n seq $NUM_OF_SLEEPS | xargs -Iz sudo pmset schedule cancel 0\n fi\n } \ n
KFunk

7

โดยค่าเริ่มต้นไม่มีวิธีการทำเช่นนั้นด้วยตัวเลือกที่คุณมีในการตั้งค่าระบบ

enter image description here

แต่คุณสามารถทำได้จากบรรทัดคำสั่งด้วยคำสั่งง่ายๆ:

sleep 10; osascript -e 'tell application "System Events" to sleep'
  • sleep 10 หยุดการทำงานของคำสั่งต่อไปนี้ชั่วคราวเป็นเวลา 10 วินาที หากคุณต้องการนาทีหรือชั่วโมงคุณต้องเปลี่ยน 10 ด้วยจำนวนวินาทีที่คุณต้องการ
  • osascript -e 'tell application "System Events" to sleep' ทำให้คอมพิวเตอร์เข้าสู่โหมดสลีป

1

คำตอบทั้งหมดข้างต้นใช้ได้ผล แต่ถ้าคุณต้องการทำเช่นนี้เป็นประจำฉันขอแนะนำ ผู้จัดการพลังงาน ซอฟต์แวร์ซึ่งช่วยให้คุณกำหนดเวลาสลีปที่กำหนดเองทั้งครั้งเดียวและเหตุการณ์ที่เกิดซ้ำได้ง่ายมาก (ทำได้ง่ายกว่าการใช้คำสั่งเทอร์มินัลในความคิดของฉัน) ซอฟต์แวร์มีราคาค่อนข้างแพง ($ 50) แต่มีการทดลองใช้ฟรี 30 วันพร้อมคุณสมบัติทั้งหมด คุณยังสามารถควบคุม Power Manager จาก iPhone ของคุณซึ่งเป็นสิ่งที่ดีหากคุณไม่ได้อยู่ที่คอมพิวเตอร์ แต่ต้องการตั้งให้เป็นโหมดสลีปหรือปิดเครื่อง


1

สำหรับการควบคุมพลังงานของ Mac จาก iPhone ของคุณบนเครือข่ายท้องถิ่นฉันได้ใช้ ปิดรีโมท ซึ่งสามารถกำหนดเวลาภายใน 24 ชั่วโมงข้างหน้าการทำงานของระบบ (ปิด, ล็อค, รีสตาร์ท, ออกจากระบบ, สลีป) และเป็นเพียง $ 3 ในร้านค้า iOS แต่ต้องติดตั้งแอพตัวช่วยเพิ่มเติมบน Mac ของคุณเพื่อรับคำแนะนำจาก iPhone แอป

คำตอบอื่นที่นี่แนะนำโดยใช้ ผู้จัดการพลังงาน ซอฟต์แวร์ที่มีราคา $ 50 แต่ฉันอยากจะแนะนำ $ 36 คีย์บอร์ดมาสโทร ซอฟต์แวร์ที่ใช้งานง่ายกว่า Power Manager เล็กน้อย แต่มีความยืดหยุ่นมากกว่าการจัดการพลังงาน ในการค้นหาความสามารถในการกำหนดเวลาให้เครื่อง Mac ของฉันเข้าสู่โหมดสลีปฉันจำได้ว่าฉันมียูทิลิตีนี้และสามารถลากและวางส่วนประกอบแมโครใน KM ได้อย่างรวดเร็วเพื่อสร้างสคริปต์ที่หยุดชั่วคราวในช่วงระยะเวลาหนึ่ง นอน:

keyboard maestro script to put Mac to sleep after 2 hours

... นอกจากนี้ยังมีการดำเนินการภายใน Keyboard Maestro เพื่อกำหนดเวลาแมโคร (เพื่อให้ Mac เข้าสู่โหมดสลีป, ปิด, รีสตาร์ทและอื่น ๆ ) เพื่อให้ทำงานตามเวลาที่กำหนด:

keyboard maestro trigger for macro based upon time and day(s) of week

Keyboard Maestro ราคาถูกกว่าและมีประสิทธิภาพมากกว่าสำหรับการพัฒนามาโครที่สามารถยกระดับการใช้งาน Mac ของคุณได้ แต่มีช่วงของการเรียนรู้มากกว่าแอปพลิเคชัน Power Manager เล็กน้อย

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