Mac OS X รองรับการไฮเบอร์เนตหรือไม่


40

บน Windows คุณสามารถจำศีลคอมพิวเตอร์ของคุณเพื่อที่จะเริ่มเร็วขึ้นมากในขณะที่ใช้พลังงานเป็นศูนย์ในขณะที่ "จำศีล"

ฉันเห็นตัวเลือกสำหรับ Sleep บน Mac mini แต่ไม่จำศีล Mac รองรับการไฮเบอร์เนตหรือไม่

ฉันอยู่ที่ Leopard

คำตอบ:


34

OS X มีตัวเลือก "สลีป" เพียงตัวเดียวเท่านั้น คุณไม่สามารถเปลี่ยนชื่อได้ แต่เพื่อเปลี่ยนพฤติกรรมของมันฉันใช้SmartSleepเวอร์ชันเก่าบน Mac mini (แม้ว่าจะอยู่ในโหมด "sleep & hibernate" เหมือนใน MacBook) มันใช้งานได้กับมินิแม้ว่าเว็บไซต์จะอ้างถึง MacBooks เท่านั้น

(SmartSleep ยังคงว่างเมื่อฉันเขียนสิ่งนี้ในปี 2009)

ฉันได้รับบางครั้งบ่นเกี่ยวกับฮาร์ดแวร์ที่ไม่ได้ถูกลบอย่างถูกต้อง (แต่ OS X ไม่เคยบอกฉันว่าฮาร์ดแวร์และดิสก์ Time Machine USB ของฉันดูดี - ฉันควรมองเข้าไปในบันทึกหนึ่งวันและฉันคิดว่ามันเกี่ยวข้องกับ OS X ไม่ใช่ ถึง SmartSleep)

ฉันได้ทดสอบ "ไฮเบอร์เนตเท่านั้น" ของ SmartSleep อย่างรวดเร็วบนมินินั้น (Intel; 10.5 ที่ทำงาน) และดูเหมือนว่าจะทำงานได้ดี เมื่อทำการทดสอบเหล่านี้ฉันสังเกตเห็นว่าหลังจากที่หน้าจอเป็นสีดำแสงไฟจะเริ่มต้นการเต้น (เช่นเพื่อบ่งบอกถึงการนอนหลับมากกว่าจำศีล) เป็นเวลาสองสามวินาที บางทีมันอาจจะยังเขียน RAM ไปยังดิสก์อยู่ (จนถึงตอนนี้ฉันมักจะคิดว่าใน MacBook ของฉันการเต้นระบุว่าทุกอย่างเสร็จสิ้น แต่ตอนนี้ฉันคิดว่าไม่ว่าโหมดสลีปใดที่ใช้งานอยู่ หลังจากนั้นไม่นานมันก็จะปิดลงอย่างสมบูรณ์

ในปี 2549 Macworld อธิบายถึงวิธีการที่จะประสบความสำเร็จเช่นเดียวกันหากไม่มีบานหน้าต่างการตั้งค่า SmartSleep วิธีตรวจสอบการตั้งค่าปัจจุบัน:

pmset -g | grep hibernatemode

ตามบทความเก่าของ Macworld มีการใช้คำแนะนำดังต่อไปนี้แต่อย่าลืมอ่านคำตอบของ Lauriที่แนะนำว่าในปัจจุบันควรใช้เพียง 0, 3 และ 25 แทน :

  • 0 - โหมดสลีปแบบเก่าโดยเปิด RAM ในขณะที่ปิดใช้งานโหมดสลีปที่ปลอดภัยและการปลุกอย่างรวดเร็ว
  • 1 - โหมดไฮเบอร์เนตที่มีเนื้อหา RAM เขียนไว้ในดิสก์ระบบจะปิดตัวเองโดยสิ้นเชิงในขณะที่ "นอนหลับ" และตื่นขึ้นมาช้าลงเนื่องจากการอ่านเนื้อหาของ RAM ออกจากฮาร์ดไดรฟ์
  • 3 - โหมดเริ่มต้นของเครื่องที่เปิดตัวตั้งแต่ประมาณฤดูใบไม้ร่วงปี 2005 RAM เปิดทำงานในขณะที่หลับ แต่เนื้อหา RAM จะถูกเขียนลงดิสก์ก่อนนอนด้วย ในกรณีที่สูญเสียพลังงานทั้งหมดระบบจะเข้าสู่โหมดไฮเบอร์เนตโดยอัตโนมัติ
  • 5 - เหมือนกับโหมด 1 แต่สำหรับผู้ที่ใช้หน่วยความจำเสมือนที่ปลอดภัย (ในการตั้งค่าระบบ»ความปลอดภัย)
  • 7 - นี่เหมือนกับโหมด 3 แต่สำหรับผู้ที่ใช้หน่วยความจำเสมือนที่ปลอดภัย

และสามารถใช้หมายเลขเดียวกันเพื่อเปลี่ยนการตั้งค่าโหมดสลีป:

sudo pmset -a hibernatemode 1

11

ฉันเขียนสคริปต์ที่จะช่วยให้คุณเข้าสู่โหมดไฮเบอร์เนตทันที (โดยไม่เปลี่ยนการตั้งค่าของคุณอย่างถาวร) ฉันคิดว่ามันมีประโยชน์มากเพราะฉันชอบการตั้งค่าเริ่มต้น แต่ต้องการบังคับให้จำศีลเมื่ออยู่บนท้องถนน บางทีคนอื่นอาจพบว่ามันมีประโยชน์เช่นกัน ;-)

#!/bin/bash

# Utility to force your mac immediately into hibernation mode/suspend to disk,
# thus conserving battery considerably (at the cost of slower startup)
# @date 2012-02-10
# @author Carl-Erik Kopseng. Contact at oligofren.wordpress.com

# must be run as root by using sudo or to avoid entering the password, change the pmset
# executable settings by entering
# sudo chmod +s /usr/bin/pmset
# sudo chmod +s /sbin/shutdown

MODE_BACKUP=/tmp/hibernate_mode.bak
SUSPEND_TO_DISK=25 #see man pmset

display_settings() {
    echo "Current settings: " $(pmset -g | grep hibernatemode)
}

save_settings() {
    echo "saving settings"
    pmset -g | grep hibernatemode | awk '{print $2}' > $MODE_BACKUP
}

restore_settings() {
    echo "restoring settings"
    pmset -a hibernatemode $(cat $MODE_BACKUP)
}

set_only_disk_hibernate() {
    echo "changing settings to only suspend to disk (slow, but does not use battery)"
    pmset -a hibernatemode $SUSPEND_TO_DISK
}

hibernate() {
    echo "going into hibernation"
    shutdown -s now
}

save_settings
set_only_disk_hibernate && hibernate
restore_settings

การเพิ่มไปยังแถบเมนู

หากคุณต้องการเรียกใช้สคริปต์นี้จากแถบเมนู ("systray") ฉันจะ:

  1. วางสคริปต์นี้ในตำแหน่งที่เหมาะสม (เช่น/usr/local/sbin/)
  2. สร้าง AppleScript ที่เรียกใช้สคริปต์นี้ เรียกมันว่า "ไฮเบอร์เนต"
  3. เพิ่มapple apple ของคุณเป็นไอคอนในแถบเมนู

ตอนนี้คุณสามารถทริกเกอร์สคริปต์ได้โดยคลิกที่แถบเมนู -> AppleScripts-> ไฮเบอร์เนต


1
ได้โปรดทำ systray เวอร์ชั่น :)
DataGreed

กรุณาสร้างรุ่น systray
qed

สวัสดีขอบคุณสำหรับความคิดเห็น น่าเสียดายที่ MacBook Pro รุ่นใหม่ที่ฉันได้รับในปี 2556 นั้นมีประสิทธิภาพในการสแตนด์บายดีกว่าแม็คก่อนหน้าของฉันและทำให้อายุการใช้งานแบตเตอรี่ดีขึ้นมาก โชคไม่ดีเลยที่ฉันจะก้าวไปข้างหน้าและเรียนรู้ Cocoa เพื่อสร้างเวอร์ชั่น systray อีกต่อไป ฉันจะลบประโยคนั้นทันที
oligofren

มันน่าสนใจมากมันทำงานอย่างไร ไม่shutdown -s nowส่งผลทันทีหรือไม่
SilverWolf - Reinstate Monica

1
@leetbacoon ได้เพิ่มคำแนะนำสำหรับการเพิ่มสิ่งนี้ลงในแถบเมนู ฉันไม่ได้เป็นเจ้าของ Mac ในสองสามปีที่ผ่านมาดังนั้นฉันจึงไม่สามารถวางภาพหน้าจอใด ๆ ...
oligofren

9

หน้าคน pmset ยังแนะนำให้ใช้แทน251

0000 1,000 (บิต 3) สนับสนุนเพจเจอร์แบบไดนามิกเพื่อเพจเพจที่ไม่แอ็คทีฟก่อนการไฮเบอร์เนตสำหรับหน่วยความจำขนาดเล็ก

0001 0000 (บิต 4) สนับสนุนเพจเจอร์แบบไดนามิกเพื่อให้เพจมีความละเอียดยิ่งขึ้นก่อนที่จะจำศีล

เราไม่แนะนำให้แก้ไขการตั้งค่าการจำศีล ไม่รองรับการเปลี่ยนแปลงใด ๆ ที่คุณทำ หากคุณเลือกที่จะทำเช่นนั้นเราขอแนะนำให้ใช้หนึ่งในสามชุดนี้ เพื่อประโยชน์ของคุณและของฉันโปรดอย่าใช้สิ่งอื่นใด 0, 3 หรือ 25

[ ... ]

hibernatemode = 25 (ไบนารี 0001 1001) สามารถตั้งค่าได้ผ่าน pmset เท่านั้น ระบบจะเก็บสำเนาหน่วยความจำไปยังที่จัดเก็บข้อมูลถาวร (ดิสก์) และจะลบพลังงานไปยังหน่วยความจำ ระบบจะกู้คืนจากดิสก์อิมเมจ หากคุณต้องการ "การจำศีล" - นอนหลับช้าลงตื่นช้าลงและอายุการใช้งานแบตเตอรี่ที่ดีขึ้นคุณควรใช้การตั้งค่านี้

ตอนนี้แล็ปท็อปบางเครื่องเข้าสู่โหมดไฮเบอร์เนต ( โหมดสแตนด์บาย ) หลังจากผ่านไปประมาณหนึ่งชั่วโมงของโหมดสลีปปกติถ้า:

  • ไม่ได้เปิดใช้งาน Power Nap (ไม่ได้เป็นค่าเริ่มต้น)
  • คอมพิวเตอร์ใช้พลังงานแบตเตอรี่
  • คอมพิวเตอร์ไม่ได้เชื่อมต่อกับอุปกรณ์ USB หรือจอแสดงผลภายนอกและไม่ได้จับคู่กับอุปกรณ์บลูทู ธ

แล็ปท็อป, Mac minis และ iMacs ใช้ประมาณ 0.2-0.4 W เมื่อปิดหรือไฮเบอร์เนตและ 0.8-1.4 W ในโหมดสลีป ไฮเบอร์เนต (และจำศีล + โหมดการนอนหลับที่แล็ปท็อปใช้ค่าเริ่มต้น) นอกจากนี้ยังอาจลดอายุการใช้งานของไดรฟ์


6

และสำหรับ OS X Lion จะใช้งานได้ดีกว่าสำหรับการไฮเบอร์เนต

sudo pmset -a hibernationmode 25

กว่า

sudo pmset -a hibernation โหมดที่ 1

เป็นโหมดไฮเบอร์เนต 1 สามารถทำให้เกิดปัญหาด้วยเหตุผลบางอย่าง


25 หมายถึงอะไร
qed

25 คือไบนารีสำหรับ 0001 1001 ซึ่งหมายความว่ามีการตั้งค่าบิต 4, 3 และ 0 (สาม 1: s) สามบิตนั้นบอกคอมพิวเตอร์ของคุณในสิ่งที่แตกต่าง บิต 0 (0000 0001) บอกให้คอมพิวเตอร์ของคุณเปิดใช้งานการไฮเบอร์เนต (ซึ่งหมายถึงการบันทึกหน่วยความจำลงดิสก์ก่อนปิดเครื่อง) บิต 3 (0000 1,000) บอกให้คอมพิวเตอร์ของคุณล้างหน่วยความจำขยะเก่าก่อนบันทึกลงดิสก์ (เพื่อให้ต้องบันทึกข้อมูลลงดิสก์น้อยลง) บิต 4 (0001 0000) บอกให้คอมพิวเตอร์ของคุณก้าวร้าวมากขึ้นในขณะที่ล้างหน่วยความจำ (ทำให้สามารถบันทึกสิ่งต่าง ๆ ลงในดิสก์ได้)
วิลเล็ม

5

สำหรับคำตอบที่ต้องอาศัยการทวีคูณ 'hibernatemode' ผ่าน pmset มันมีประโยชน์ที่จะต้องทราบว่าตัวเลือก 'force' บน pmset ทำให้การเปลี่ยนแปลงชั่วคราว การตั้งค่าจะไม่ถูกจดจำเมื่อระบบออกจากโหมดไฮเบอร์เนต ตัวอย่างเช่น:

pmset -a hibernatemode 25 force

จะเปลี่ยนโหมดไฮเบอร์เนตเพื่อแสดงโหมดไฮเบอร์เนตแบบดั้งเดิม (เช่นสถานะของระบบที่เขียนลงดิสก์และพลังงานออก) แต่จนกว่าจะเปิดระบบในครั้งต่อไปหรืออ่านการตั้งค่าจากดิสก์ ( pmset touch)

การใช้ตัวเลือกบังคับหลีกเลี่ยงความต้องการในการบันทึกและเรียกคืนการตั้งค่า hibernatemode ปัจจุบัน


สุดยอดเคล็ดลับ! คุณสามารถแก้ไขคำตอบของฉันถ้าคุณรำคาญมากเกินไป :)
oligofren

3

ได้. มันเรียกว่าการนอนหลับที่ปลอดภัย วิธีที่ง่ายที่สุดที่จะได้รับก็คือการใช้เครื่องมือการนอนหลับลึก


2
ฉันเกลียดวิดเจ็ตด้วยความหลงใหล มีบางสิ่งที่ไม่ใช่วิดเจ็ตไหม?
AngryHacker

1
สำหรับเจ้าของแล็ปท็อปวิธีที่ง่ายที่สุดคือปิดฝา เมนู Apple ที่มุมซ้ายบนมีตัวเลือก sleep '' (อย่างน้อยก็ใน Tiger ของฉัน)
Tadeusz A. Kadłubowski

3

การไฮเบอร์เนตจะถูกเรียกใช้โดยอัตโนมัติหากแบตเตอรี่แล็ปท็อปของคุณหมด


2
Mac mini ไม่มีแบตเตอร์รี่ ...
Arjan

2

ฉันได้อ่านแล้วว่า "Safe Sleep" เป็นค่าเริ่มต้นสำหรับ Intel Macs ทั้งหมดและเครื่อง PowerPC รุ่นใหม่บางรุ่น (ฉันคิดว่า Intel mini's มีการสนับสนุนนี้

แต่ "Safe Sleep" ด้วยตัวเองนั้นไม่เหมือนกับ "ไฮเบอร์เนต" เป็นการรวมกันของการบันทึก RAM ลงดิสก์ แต่ยังทำโหมดสลีปปกติ สิ่งนี้ช่วยให้สามารถทำการปลุกได้อย่างรวดเร็วและยังคงสถานะของระบบไว้หากไฟฟ้าดับโดยสมบูรณ์ในขณะที่เครื่องกำลังหลับ

คุณสามารถบอกได้ว่าระบบใช้ Safe Sleep โดย (หลังจากการนอนหลับอย่างน้อยหนึ่งครั้ง) หรือไม่ตรวจสอบไฟล์ / var / vm / sleepimage ที่มีขนาดเท่ากับ RAM ที่ติดตั้งไว้ นอกจากนี้เมื่อ Safe Sleep ทำงานอยู่จะมีความล่าช้าอีกต่อไประหว่างการคลิกรายการเมนู Sleep (หรือปุ่มหรือกด Command-Option-Eject) ค้างไว้ก่อนที่ไฟแสดงสถานะของเครื่องจะเริ่มวนซ้ำแบบเลือนลง / จางลง

บิตสุดท้ายของการแก้ปัญหาคือการทำให้เครื่องปิดการทำงานอย่างสมบูรณ์หลังจากบันทึก RAM ในโหมดสลีป ดูเหมือนว่ามันเป็นไปได้ในการกำหนดค่านี้โดยใช้โปรแกรมบรรทัดคำสั่งpmsetเพื่อตั้งhibernatemode คุณอาจชำระเงินบางอย่างเช่นDeep Sleepสำหรับวิธีอัตโนมัติในการเปลี่ยนแปลงการกำหนดค่านี้


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