Поддерживает ли Mac OS X спящий режим?

40

В Windows вы можете перевести компьютер в режим гибернации, чтобы он запускался намного быстрее, потребляя при этом нулевую энергию при «спящем режиме».

Я вижу возможность спать на моем Mac mini, но не в спящем режиме. Mac поддерживает гибернацию?

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

AngryHacker
источник

Ответы:

34

OS X имеет только одну опцию «сна». Вы не можете изменить его имя, но чтобы изменить его поведение, я использую старую версию SmartSleep на Mac mini (хотя в режиме «сна и гибернации», подобном MacBook). Это работает для мини, хотя сайт относится только к MacBook.

(SmartSleep был все еще свободен, когда я написал это в 2009 году.)

Иногда я получаю жалобы на то, что оборудование не было удалено должным образом (но OS X никогда не говорит мне, какое оборудование, и мои USB-диски Time Machine кажутся нормальными - я должен заглянуть в журналы однажды, и я предполагаю, что это связано с OS X, а не SmartSleep).

Я быстро протестировал «только спящий режим» SmartSleep на этом мини (Intel; работает 10.5), и, похоже, он тоже работает. Выполняя эти тесты, я заметил, что после того, как дисплей погаснет, индикатор питания начнет пульсировать (например, чтобы показать сон, а не спящий режим) на несколько секунд. Может быть, он все еще записывает ОЗУ на диск. (До сих пор я всегда думал, что на моем MacBook пульсирование указывало, что все было сделано. Но теперь я думаю, что, какой бы режим сна вы ни использовали, вероятно, не следует отключать питание слишком рано). Через некоторое время он полностью отключается.

В 2006 году Macworld объясняет, как добиться того же самого без этой панели настроек SmartSleep. Чтобы проверить текущую настройку:

pmset -g | grep hibernatemode

Согласно старой статье Macworld, применимо следующее, но обязательно прочитайте ответ Лаури, который предполагает, что в настоящее время вместо этого следует использовать только 0, 3 и 25 :

  • 0 - Режим сна в старом стиле, с включенной оперативной памятью во время сна, безопасным режимом сна и сверхбыстрым пробуждением.
  • 1 - режим гибернации, при котором содержимое ОЗУ записывается на диск, система полностью отключается во время «сна» и медленнее просыпается из-за чтения содержимого ОЗУ с жесткого диска.
  • 3 - Режим по умолчанию на машинах, введенный примерно с осени 2005 года. ОЗУ включается во время сна, но содержимое ОЗУ также записывается на диск перед сном. В случае полной потери мощности система автоматически переходит в режим гибернации.
  • 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, который просто вызывает этот скрипт. Назовите это "Hibernate"
  3. Добавьте ваши сценарии яблока в виде значка в строке меню

Теперь вы можете запустить скрипт, щелкнув Строка меню-> AppleScripts-> Hibernate

oligofren
источник
1
пожалуйста, сделайте systray версию :)
DataGreed
Пожалуйста, сделайте systray версию.
ч.т.д.
Привет, спасибо за комментарии. К сожалению, новый MacBook Pro, который я получил в 2013 году, имеет гораздо лучшую производительность в режиме ожидания, чем мой предыдущий Mac, и значительно продлевает время работы от батареи. Так что, к сожалению, у меня практически нет недостатка в том, чтобы идти дальше и изучать Какао для того, чтобы сделать версию systray больше. Я удалю это предложение сейчас.
oligofren
Это очень интересно, как это работает? Не shutdown -s nowвступает в силу немедленно?
Серебряный Волк - Восстановить Монику
1
@leetbacoon добавил инструкции для добавления этого в строку меню. У меня не было Mac уже пару лет, поэтому я не могу вставить скриншоты ...
oligofren
9

Страница руководства pmset также рекомендует использовать 25вместо 1.

0000 1000 (бит 3) побуждает динамический пейджер выводить неактивные страницы до перехода в режим гибернации, чтобы уменьшить объем используемой памяти.

0001 0000 (бит 4) побуждает динамический пейджер к агрессивному пейджингу перед переходом в спящий режим, чтобы уменьшить объем используемой памяти.

Мы не рекомендуем изменять настройки гибернации. Любые сделанные вами изменения не поддерживаются. В любом случае, если вы решите сделать это, мы рекомендуем использовать одну из этих трех настроек. Ради меня, пожалуйста, не используйте ничего, кроме 0, 3 или 25.

[...]

hibernatemode = 25 (двоичный код 0001 1001) устанавливается только через pmset. Система сохранит копию памяти в постоянном хранилище (на диске) и отключит питание памяти. Система восстановится с образа диска. Если вы хотите «спящий режим» - более медленный сон, более медленные пробуждения и лучшее время автономной работы, вам следует использовать этот параметр.

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

  • Power Nap не включен (поэтому не по умолчанию)
  • Компьютер работает от батареи
  • Компьютер не подключен к USB-устройствам или внешним дисплеям и не связан с Bluetooth-устройствами

Ноутбуки, Mac mini и iMac используют около 0,2-0,4 Вт в выключенном или спящем режиме и 0,8-1,4 Вт в спящем режиме. Режим гибернации (и режим гибернации + спящий режим, который используется по умолчанию для ноутбуков) также может сократить срок службы накопителей .

LRI
источник
6

И для OS X Lion это работает лучше для гибернации

sudo pmset -a режим гибернации 25

чем

sudo pmset - режим гибернации 1

так как режим гибернации 1 может вызвать сбои по некоторым причинам.

Willem
источник
Что именно означает 25?
Qed
25 является двоичным для 0001 1001, что означает, что биты 4, 3 и 0 установлены (три 1: с). Эти три бита говорят вашему компьютеру разные вещи. Бит 0 (0000 0001) указывает вашему компьютеру активировать режим гибернации (что означает сохранение памяти на диск перед выключением). Бит 3 (0000 1000) говорит вашему компьютеру очистить память от старого барахла перед сохранением его на диск (чтобы было необходимо сохранять меньше информации на диск). Бит 4 (0001 0000) говорит о том, что ваш компьютер должен быть более агрессивным при очистке памяти (что позволяет сохранять на диск еще меньше информации).
Виллем
5

Для ответов, которые основаны на переключении «режима гибернации» через pmset, полезно отметить, что опция «force» в pmset делает изменения временными. Эта настройка не будет запомнена, когда система выйдет из спящего режима. Например:

pmset -a hibernatemode 25 force

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

Использование параметра силы избавляет от необходимости сохранять и восстанавливать текущие настройки режима гибернации.

user210274
источник
Отличный совет! Вы можете отредактировать мой ответ, если вам это тоже
понравится
3

Ага. это называется безопасный сон. Самый простой способ получить это - использовать виджет глубокого сна .

yanokwa
источник
2
Я ненавижу виджеты со страстью. Есть ли что-то не-виджеты?
AngryHacker
1
Для владельцев ноутбуков самый простой способ - закрыть крышку. В меню Apple в верхнем левом углу также есть опция «спать» (по крайней мере, на моем Tiger).
Тадеуш А. Кадлубовский
3

Режим гибернации также будет запускаться автоматически, если батарея вашего ноутбука полностью разрядится.

Боб Д
источник
2
Mac mini не имеет батареи ...
Арьян
2

Я читал, что «Безопасный сон» по умолчанию включен на всех компьютерах Intel Mac и некоторых поздних моделях PowerPC (я думаю, что у Intel mini есть такая поддержка, но у PPC, вероятно, нет - без неподдерживаемых хаков).

Но «безопасный сон» сам по себе не совсем то же самое, что и «спящий режим». Это комбинация сохранения ОЗУ на диск, но и нормальный сон. Это позволяет быстро пробуждаться, а также сохраняет состояние системы, если происходит сбой питания во время сна компьютера.

Вы можете определить, использует ли система Safe Sleep (по крайней мере, после одного сна), проверив наличие файла / var / vm / sleepimage того же размера, что и установленная оперативная память. Кроме того, когда активен режим безопасного сна, будет более длительная задержка между нажатием пункта меню «Режим сна» (или кнопки, или удерживанием клавиши «Command-Option-Eject») до того, как индикатор состояния устройства начнет свой обычный цикл постепенного увеличения / уменьшения.

Последний бит решения состоит в том, чтобы полностью отключить питание машины после сохранения памяти в режиме сна. Кажется, что это можно настроить, используя программу pmset командной строки для установки режима гибернации . Вы можете воспользоваться чем-то вроде Deep Sleep для автоматического внесения изменений в конфигурацию.

Крис Джонсен
источник
Безопасный сон не был включен по умолчанию на моем Intel Mac mini. Я использовал SmartSleep, чтобы включить его, но действительно pmsetмогу добиться того же.
Арджан