Чи підтримує Mac OS X сплячку?


40

У Windows можна перезимувати на комп’ютері, щоб він запускався набагато швидше, споживаючи нульову енергію під час "сплячки".

Я бачу можливість спати на моєму Mac mini, але не перезимувати. Чи підтримує Mac сплячку?

Я на Леопарді.

Відповіді:


34

У OS X є лише одна опція "сну". Ви не можете змінити його ім'я, але щоб змінити його поведінку, я використовую стару версію SmartSleep на Mac mini (хоча в режимі "сон і сплячий режим", схожий на MacBook). Він працює для міні, хоча веб-сайт посилається лише на MacBooks.

(SmartSleep був ще вільним, коли я писав це у 2009 році.)

Я час від часу отримую скарги на те, що апаратне забезпечення не було видалено належним чином (але ОС X ніколи не каже мені, що таке обладнання, а мої USB-диски Time Machine здаються нормальними - я повинен зазирнути в журнали одного дня, і я припускаю, що це пов’язано з ОС X, а не до SmartSleep).

Я швидко протестував SmartSleep на "міні-сплячку" на цьому міні (Intel; працює з 10.5), і, здається, працює також. Роблячи ці тести, я помітив, що після того, як дисплей увімкне, індикатор живлення починає пульсувати (як би вказувати на сон, а не в сплячку) протягом декількох секунд. Можливо, це все-таки записується оперативна пам'ять на диск. (До цих пір я завжди думав, що на моєму MacBook пульсування вказує на те, що все зроблено. Але зараз я думаю, що в якому б режимі сну ви не використовувались, напевно, не слід занадто швидко відключати живлення). Через короткий час він повністю припиняється.

У 2006 році Macworld пояснює, як досягти того ж без тієї області переваг SmartSleep. Щоб перевірити поточну настройку:

pmset -g | grep hibernatemode

Згідно зі старою статтею Macworld застосовується наступне, але не забудьте прочитати відповідь Лаурі, яка говорить про те, що на сьогодні замість цього слід використовувати лише 0, 3 та 25 :

  • 0 - режим сну в старому стилі, з включеною оперативною пам’яттю під час сну, безпечним сном відключеним та надшвидким пробудженням.
  • 1 - Режим глибокого сну, із вмістом оперативної пам’яті, записаним на диск, система повністю вимикається під час «сну» і повільніше прокидається через зчитування вмісту ОЗУ з жорсткого диска.
  • 3 - Режим за замовчуванням на машинах, запроваджений приблизно з осені 2005 року. Оперативна пам’ять включається під час сну, але вміст ОЗУ також записується на диск перед сном. У разі повної втрати електроенергії система автоматично переходить у режим сплячки.
  • 5 - Це те саме, що в режимі 1, але це для тих, хто використовує захищену віртуальну пам'ять (в System Preferences »Security).
  • 7 - Це те саме, що в режимі 3, але це для тих, хто використовує захищену віртуальну пам'ять.

І ті самі номери можна використовувати для зміни налаштування режиму сну:

sudo pmset -гібернатемода 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. Додайте свої яблучні сценарії як значок у рядок меню

Тепер ви можете запустити скрипт, натиснувши рядок меню-> AppleScripts-> Hibernate


1
будь ласка, зробіть
текстову

Будь ласка, зробіть текстовий варіант.
qed

Привіт, дякую за коментарі. На жаль, новіший MacBook Pro, який я отримав у 2013 році, має набагато кращі показники роботи в режимі очікування, ніж попередній комп'ютер Mac, і значно покращує його ресурс акумулятора. Так що для мене, на жаль, мало глузду, щоб продовжувати і вивчати какао для створення системної версії. Я вилучу це речення зараз.
олігофрен

Це дуже цікаво, як це працює? Чи shutdown -s nowвступає в силу негайно?
SilverWolf - Відновіть Моніку

1
@leetbacoon додав інструкції щодо додавання цього до рядка меню. Я не володів Mac за пару років, тому не можу вставити скріншоти ...
oligofren

9

Сторінка manset також рекомендує використовувати 25замість цього 1.

0000 1000 (біт 3) заохочує динамічний пейджер до розгортання неактивних сторінок до сплячки для зменшення розміру пам'яті.

0001 0000 (біт 4) заохочує динамічний пейджер до більш глибокого розгортання даних до сну для зменшення розміру пам’яті.

Ми не рекомендуємо змінювати настройки сплячки. Будь-які внесені вами зміни не підтримуються. Якщо ви все-таки вирішите це зробити, радимо скористатися однією з цих трьох установок. Заради вас і моїх, будь ласка, не використовуйте нічого іншого 0, 3 або 25.

[...]

hibernatemode = 25 (двійковий 0001 1001) встановлюється лише через pmset. Система зберігатиме копію пам’яті на постійному сховищі (диск) і відключає живлення в пам'ять. Система відновиться з образу диска. Якщо ви хочете "сплячки" - повільніший сон, повільніші пробудження та кращий ресурс акумулятора, слід скористатися цим налаштуванням.

Деякі ноутбуки зараз переходять у сплячку ( режим очікування ) приблизно через годину нормального сну, якщо:

  • Power nap не ввімкнено (тому не за замовчуванням)
  • Комп'ютер працює від акумулятора
  • Комп'ютер не підключений до USB-пристроїв або зовнішніх дисплеїв і не з'єднаний з пристроями Bluetooth

Ноутбуки, Mac minis та iMacs використовують близько 0,2-0,4 Вт при відключенні або в сплячку та 0,8-1,4 Вт у режимі сну. Зимова сплячка (і сплячий режим + режим сну, який ноутбуки використовують за замовчуванням) також можуть скоротити термін служби накопичувачів .


6

А для OS X Lion це краще працює в сплячому режимі

sudo pmset -с hibernationmode 25

ніж

sudo pmset -с hibernationmode 1

оскільки сплячий режим 1 може чомусь спричинити збої.


Що саме означає 25?
qed

25 є двійковим для 0001 1001, що означає, що встановлюються біти 4, 3 і 0 (три 1: s). Ці три біти розповідають про ваш комп'ютер різні речі. Біт 0 (0000 0001) спонукає ваш комп'ютер активувати сплячку (це означає збереження пам’яті на диску перед вимкненням). Біт 3 (0000 1000) повідомляє вашому комп'ютеру очистити пам'ять старого сміття перед тим, як зберегти його на диск (щоб змусити його зберігати менше матеріалу на диску). Біт 4 (0001 0000) говорить про те, що ваш комп'ютер буде більш агресивним під час очищення пам'яті (що дозволяє зберегти на диску ще менше матеріалів).
Віллем

5

Для відповідей, які покладаються на подвійне змінення 'hibernatemode' через pmset, корисно зазначити, що опція 'force' на pmset робить зміни тимчасовими. Цей параметр не запам’ятається, коли система прокинеться від сплячки. Наприклад:

pmset -a hibernatemode 25 force

Буде змінено режим глибокого сну, щоб він відображав традиційну сплячку (тобто стан системи, записаний на диск та відключений живлення), але лише до наступного ввімкнення системи або зчитування параметрів з диска ( pmset touch).

Використання параметра "сила" дозволяє уникнути необхідності збереження та відновлення поточних параметрів снубернатемода.


Чудова порада! Ви можете відредагувати мою відповідь, якщо ви також турбуєтесь :)
oligofren

3

Так. це називається безпечним сном. Найпростіший спосіб отримати це - віджет глибокого сну .


2
Я ненавиджу віджети із пристрастю. Чи є щось не-віджет?
AngryHacker

1
Для власників ноутбуків найпростіший спосіб - закрити кришку. Меню Apple у верхньому лівому куті також має опцію ,, сон "(принаймні на моєму тигра).
Tadeusz A. Kadłubowski

3

Зимова сплячка також буде запущена автоматично, якщо акумулятор ноутбука повністю розрядиться.


2
Mac mini не має батареї ...
Арджан

2

Я читав, що "Безпечний сон" за замовчуванням увімкнено на всіх процесорах Intel Macs та на деяких машинах PowerPC пізньої моделі (я думаю, що у Intel mini є така підтримка, але у ППК, мабуть, немає - без непідтримуваних хакерів).

Але "Безпечний сон" сам по собі не зовсім такий, як "сплячка". Це поєднання збереження оперативної пам’яті на диску, але і нормального сну. Це дозволяє швидко прокинутися, а також зберігає стан системи, якщо джерело живлення повністю вийде з ладу, коли машина спить.

Ви можете сказати, чи використовує система Safe Sleep (принаймні один сон), перевіривши, чи має файл / var / vm / sleepimage того ж розміру, що і встановлена ​​оперативна пам'ять. Також, коли активний режим безпечного сну, буде тривалішою затримкою між натисканням пункту меню "Сон" (або кнопкою або утримуванням Command-Option-Eject) до того, як індикатор стану машини запустить звичайний цикл затухання / згасання.

Останній біт рішення полягає в тому, щоб привести машину до повного вимкнення живлення після збереження оперативної пам'яті в режимі сну. Схоже, це можливо настроїти за допомогою програми pm командного рядка pmset для встановлення hibernatemode . Ви можете перевірити щось на зразок глибокого сну для автоматизованого способу зміни цієї конфігурації.


На моєму Mac Mac mini за умовчанням не було включено безпечний сон. Я використовував SmartSleep для його ввімкнення, але дійсно pmsetможу досягти того ж.
Ар'ян
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.