Решение проблемы сна в Mountain Lion
В ML 10.8.2 появилась небольшая проблема с засыпанием компьютера. Симптомы — экран заснул, а компьютер ни в какую не хочет спать. Решение найдено, расскажу и покажу как его в будущем на всякий случай использовать на практике.
На помощь к нам приходит «Терминал»
Запускаем и вводим команду:
sudo pmset -g assertions
Терминал покажет следующее:
Last login: Thu Dec 20 15:20:03 on ttys000
Mac-macintoshimru:~ macintoshim$ sudo pmset -g assertions
Password:
20.12.12, 15:21:20 GMT+0
Assertion status system-wide:
PreventUserIdleDisplaySleep 0
PreventSystemSleep 0
PreventUserIdleSystemSleep 0
ExternalMedia 0
UserIsActive 0
ApplePushServiceTask 0
BackgroundTask 1
Listed by owning process:
pid 199(helpd): [0x0000000c00000135] 00:01:15 BackgroundTask named: "com.apple.helpd.sdmbuilding"
Kernel Assertions: 0x0004
* Kernel Assertion ID = 500
Created At = 20.12.12, 15:20:32 GMT+0
Modified At = 01.01.70, 4:00:00 GMT+04
Owner ID = 0xffffff8034c75000
Level = 0
Assertions Set = None (4)
* Kernel Assertion ID = 501
Created At = 20.12.12, 15:22:04 GMT+0
Modified At = 20.12.12, 15:28:59 GMT+0
Owner ID = 0xffffff80b4cba000
Level = 255
Assertions Set = None (4)
Mac-macintoshimru:~ macintoshim$
Нас интересует «BackgroundTask». Цифра «1» означает, что один процесс работает в фоновом режиме и мешает заснуть компьютеру. Ниже написано его название:
pid 199(helpd): [0x0000000c00000135] 00:01:15 BackgroundTask named: "com.apple.helpd.sdmbuilding"
Отключаем его на всегда, вводим команду в терминале:
launchctl unload -w /System/Library/LaunchAgents/com.apple.helpd.plist
Примечание: launchctl load -w путь к процессу — вернёт процесс обратно к жизни :)
man pmset — покажет все возможности команды
Проверяем:
sudo pmset -g assertions
и видим:
20.12.12, 15:29:29 GMT+0
Assertion status system-wide:
PreventUserIdleDisplaySleep 0
PreventSystemSleep 0
PreventUserIdleSystemSleep 0
ExternalMedia 0
UserIsActive 0
ApplePushServiceTask 0
BackgroundTask 0
Kernel Assertions: 0x0004
* Kernel Assertion ID = 500
Created At = 20.12.12, 15:20:32 GMT+0
Modified At = 01.01.70, 4:00:00 GMT+04
Owner ID = 0xffffff8034c75000
Level = 0
Assertions Set = None (4)
* Kernel Assertion ID = 501
Created At = 20.12.12, 15:22:04 GMT+0
Modified At = 20.12.12, 15:28:59 GMT+0
Owner ID = 0xffffff80b4cba000
Level = 255
Assertions Set = None (4)
Mac-macintoshimru:~ macintoshim$
BackgroundTask 0, фоновых процессов мешающих сну нет и компьютер заснет как и раньше.
Дополнение:
При помощи этой команды pmset можно анализировать интересные данные. Например, я люблю ложиться спать под фильм, запуская MPlayerX и разумеется когда фильм закончится а я буду в глубоком сне, мне хочется, чтобы компьютер выключился.
Анализируем:
sudo pmset -g assertions
Как видите на скриншоте программа для просмотра видео MPlayerX не дает заснуть экрану ноутбука и системе уйти в сон:
pid 165(coreaudiod): [0x00000001000006e0] 00:00:53 NoIdleSleepAssertion named: "com.apple.audio.'AppleHDAEngineOutput:1B,0,1,2:0'.noidlesleep"
pid 4410(MPlayerX): [0x00000005000006de] 00:00:53 PreventUserIdleDisplaySleep named: "MPlayerX is in playback."
даже при «BackgroundTask 0»
PreventUserIdleDisplaySleep 1
CPUBoundAssertion 0
PreventSystemSleep 0
PreventUserIdleSystemSleep 1
ExternalMedia 1
DisableLowPowerBatteryWarnings 0
UserIsActive 0
ApplePushServiceTask 0
BackgroundTask 0
Отсюда следует, что когда фильм закончится, MPlayerX даст компьютеру уйти в сон «PreventUserIdleDisplaySleep 0» и «PreventUserIdleSystemSleep 0».
ExternalMedia 1 — это к моему макбуку подключен внешний USB HDD — с ним спит отлично, однако, например программа Transmission для закачки торрентов, может не давать спать компьютеру из-за своих настроек:
Если убрать галку, тогда компьютер будет засыпать при первой возможности, даже если вы что-то качаете. Если галка отмечена, как только Transmisson перестанет качать торренты либо раздавать в установленном интервале для сна — компьютер заснет сладким сном :).
И последнее. Если компьютер не засыпает, быть может Time Machine делает бекап? :)
6 комментариев
как остановить этот процесс?
т.е. так:
-9 означает прибить наглухо
спасибо