Вики IT-KB

Пошаговые руководства, шпаргалки, полезные ссылки...

Инструменты пользователя

Инструменты сайта


apple-mac-os:yosemite:os-x-sleep-mode-via-command-line

Настройка режима сна с помощью командной строки в OS X

Для того чтобы узнать количество минут, спустя которые компьютер уйдёт в режим сна нужно выполнить:

sudo systemsetup -getcomputersleep

Например, чтобы настроить переход компьютера в режим сна через 1 час бездействия:

sudo systemsetup -setcomputersleep 60

Для того чтобы выключить переход в режим сна:

sudo systemsetup -setcomputersleep 0

или

sudo systemsetup -setcomputersleep Never

Как и в любой другой современной ОС, OS X имеет несколько режимов сна. Простой сон - оперативная память компьютера продолжает потреблять питание. Глубокий сон (гибернация) - содержимое оперативной памяти копируется на жёсткий диск.

По умолчанию, режим гибернации включен только на MacBook, на остальных моделях его можно включить. Посмотрим текущие настройки электропитания:

sudo pmset -g

Нас интересует параметр hibernatemode. Он может принимать несколько значений:

  • 0 - гибернация выключена;
  • 3 - гибернация включена, содержимое оперативной памяти копируется на диск, но питание не отключается;
  • 25 - гибернация включена, содержимое оперативной памяти копируется на жёсткий диск, затем отключается питание.

С помощью параметра standbydelay можно задать время в секундах, спустя которое компьютер будет автоматически переходить с режима сна в режим гибернации.

Для экономии электроэнергии можно настроить настольный Mac следующим образом: Включаем режим гибернации с автоматическим отключением питания через 15 минут.

sudo pmset hibernatemode 3 standbydelay 900

Или включаем более экономный режим, который будет отключать питание сразу после копирования оперативной памяти

sudo pmset hibernatemode 25

Так же, можно вручную отправить Mac в сон

pmset sleepnow

В процессе использования OS X некоторые пользователи могут заметить, что система перестала уходить в режим сна автоматически, а все настройки на первый взгляд будут верными. Для того чтобы разобраться с ситуацией, посмотрим сводку энергопотребления, выполним в терминале:

pmset -g assertions

Нас интересует параметр «PreventUserIdleSystemSleep», если он имеет значение «1», то значит в системе запущено какое-то приложение или служба не позволяющая OS X засыпать. Если взглянуть на вывод внимательнее, то в «Listed by owning process» можно будет увидеть службу, которая мешает автоматическому переходу в режим сна. Вывод с моего компьютера:

pmset.output
Assertion status system-wide:
 BackgroundTask 0
 ApplePushServiceTask 0
 UserIsActive 1
 PreventUserIdleDisplaySleep 0
 PreventSystemSleep 0
 ExternalMedia 1
PreventUserIdleSystemSleep 1
 NetworkClientActive 0
Listed by owning process:
 pid 30(powerd): [0x0011e45400081c33] 121:05:39 ExternalMedia named: "com.apple.powermanagement.externalmediamounted" 
 pid 31(com.apple.serve): [0x0014bcca000120dd] 00:14:04 PreventUserIdleSystemSleep named: "com.apple.collabd" 
 pid 75(hidd): [0x0014bfa6000920f6] 00:01:52 UserIsActive named: "com.apple.iohideventsystem.queue.tickle" 
	Timeout will fire in 21 secs Action=TimeoutActionRelease
Kernel Assertions: 0x10c=USB,BT-HID,MAGICWAKE
 id=503 level=255 0x4=USB mod=09.03.15, 18:44 description=EHC1 owner=AppleUSBEHCI
 id=506 level=255 0x100=MAGICWAKE mod=09.03.15, 19:36 description=en0 owner=en0
 id=508 level=255 0x8=BT-HID mod=01.01.70, 3:00 description=com.apple.driver.IOBluetoothHIDDriver owner=BNBMouseDevice
 id=522 level=255 0x8=BT-HID mod=01.01.70, 3:00 description=com.apple.driver.IOBluetoothHIDDriver owner=AppleBluetoothHIDKeyboard

Как видно, мешает «com.apple.collabd», этот компонент входит в набор утилит OS X Server, и запускается даже если у Вас нет настроенных служб. Насколько мне удалось понять, эта служба необходима для wiki сервисов которые можно поднять с помощью OS X Server.

Для того чтобы отключить службу, необходимо выполнить:

sudo serverctl disable service=com.apple.collabd

Затем можно снова выполнить просмотр сводки, если значение «PreventUserIdleSystemSleep», изменилось на «0», то при отсутствии других проблем, автоматический переход в режим сна должен заработать.


Автор первичной редакции:
Виталий Якоб
Время публикации: 09.03.2016 14:45

Обсуждение

vladvlad, 01.11.2016 12:10
Спасибо большое за статью
МаксимМаксим, 02.12.2016 14:29, 02.12.2016 19:41
Что делать если активен только UserIsActive 1, а iMac не переходит в режим сна (куллеры крутятся)
Виталий ЯкобВиталий Якоб, 02.12.2016 19:41, 02.12.2016 19:46
Так же смотрите в сторону: pmset -g assertions, смотоите на позиции, которые имитируют пользовательскую активность: UserIsActive
Например, запущенный VLC может мешать компьютеру уснуть, в особенности, если что-то поставлено на паузу:
pid 16211(VLC): [0x000161c6000987c7] 00:00:15 UserIsActive named: ""
Может быть у Вас запущен торрент-клиент который качает/раздаёт или какой-нибудь "кофеин".

Попробуйте перезагрузить iMac, посомтреть как будет вести себя машина. Можно попрбовать любимое решение техподдержки: очистить NVRAM. (Command+Option+P+R)


Для себя режим сна я решил просто: Настройки -> экономия энергии -> Расписание. Указал, что каждый день в 01:00 компьютер переходит в режим сна. За минуту до перехода в режим сна система выплюнет об этом сообщение, если не нажать "отмена", система уйдёт в сон, не смотря ни на какие задачи.
ПавелПавел, 28.12.2016 13:25
А что делать, если настроено, чтобы в сон не уходил никогда, а он уходит через 15 минут, при этом отрубаются сетевые диски, и потом очень долго ищет локальный сервер, и диски приходится порой подключать вручную?
Ваш комментарий:
 

apple-mac-os/yosemite/os-x-sleep-mode-via-command-line.txt · Последние изменения: 09.03.2016 15:02 — Алексей Максимов