Почему мой MacBook Pro не спит автоматически?

16

Мой MacBook настроен на сон через 2 минуты при работе от батареи (через панель настроек «Экономия энергии»). Однако, когда я оставляю его бездействующим, он только выключает экран - он фактически не спит. Это означает, что если я оставлю его и забуду закрыть крышку, он всегда будет иметь разряженную батарею.

Система спит правильно, если она запускается вручную ( - Спящий режим) или при закрытии крышки. Я проверил его без подключенных USB-устройств и с новой учетной записью пользователя, на случай, если фоновая программа мешает спать. На момент, когда система должна находиться в режиме ожидания, на консоль не выводится соответствующая информация.

Я выполнил сброс PRAM и SMC безрезультатно, как и обычные суеверные разрешения на проверку диска.

Есть ли что-то еще, что я должен попробовать перед переустановкой OS X?

Это MacBookPro5,5работающая ОС 10.6.6.

Стоит отметить, что я столкнулся с этой проблемой некоторое время назад из-за ошибки в демоне помощника для продукта Things , но эта проблема была немного другой и включала отображение сна. Кроме того, я убедился, что во время моих тестов демон-помощник не работал.

Дополнительная информация:

Я начал работать с документом Apple, озаглавленным « Почему ваш Mac может не спать или оставаться в спящем режиме». Я обнаружил, что эта проблема не появляется при безопасной загрузке компьютера. Я просмотрел diffсписки процессов и обнаружил, что следующие программы работают только при нормальной загрузке, и, таким образом, являются возможными виновниками:

  • Quick Look Helper
  • cvmsComp_x86_64
  • kextcache
  • launchd
  • mdworker
  • mdworker
  • nmblookup
  • vmnet-bridge
  • vmnet-dhcpd
  • vmnet-dhcpd
  • vmnet-natd
  • vmnet-netifup
  • vmnet-netifup
Фил Кальвин
источник
Убедитесь, что вы устанавливаете режим сна компьютера, а не отображать режим сна. Фото здесь: imgur.com/yVGb4.png
Натан Гринштейн,
1
Из любопытства, можете ли вы попытаться настроить Display Sleep на что-нибудь после Computer Sleep? Может быть, мы найдем ошибку. Еще одна вещь, которая приходит на ум: Может быть, ваша заставка активирует и не дает что-то спать (это также будет ошибка). Попробуйте изменять настройки до тех пор, пока они не станут плавными, «Заставка», «Режим сна», «Режим сна компьютера», с интервалом не менее минуты.
Натан Гринштейн
1
Панель настроек не позволяет установить режим сна в спящем режиме после сна компьютера. Я попробовал их как одно и то же, так и другое (думая, что у первого может быть ошибка). Я также попробовал Заставку, Режим сна и Режим компьютера с минутой между ними, но без кубиков.
Фил Кэлвин
1
@Martin Wickman: возможно, я решил это. У меня было менее 5% свободного места на системном томе, который записывался в системный журнал (но не таким образом, чтобы было ясно, что существует связь). Освобождение 50 ГБ решило проблему. У вас тоже мало свободного места?
Фил Кэлвин
1
Я только что узнал о том, pmset -g assertionsчто показывает некоторую информацию о том, какой процесс (или что-то) мешает спать. Проверьте это.
Мартин Уикман

Ответы:

5

Чтобы помочь отладить проблемы со сном, попробуйте pmsetкоманду в терминале:

$ pmset -g assertions

Assertion status system-wide:
   ChargeInhibit                           0
   PreventUserIdleDisplaySleep             0
   PreventUserIdleSystemSleep              1
   NoRealPowerSources_debug                0
   CPUBoundAssertion                       0
   EnableIdleSleep                         1
   PreventSystemSleep                      0
   DisableInflow                           0
   DisableLowPowerBatteryWarnings          0
   ExternalMedia                           0

Listed by owning process:
  pid 2520: [0x0000012c000009d8] PreventUserIdleSystemSleep named: "com.apple.audio.'AppleHDAEngineOutput:1B,0,1,2:0'.noidlesleep" 

В данном случае это процесс 2520 портится. Проверьте это в мониторе активности и убейте его (/ usr / sbin / coreaudiod, запущенный iTunes).

После этого снова запустите команду:

Assertion status system-wide:
   ChargeInhibit                           0
   PreventUserIdleDisplaySleep             0
   PreventUserIdleSystemSleep              0
   NoRealPowerSources_debug                0
   CPUBoundAssertion                       0
   EnableIdleSleep                         1
   PreventSystemSleep                      0
   DisableInflow                           0
   DisableLowPowerBatteryWarnings          0
   ExternalMedia                           0

Нет флагов для PreventUserIdleSystemSleep.

Мартин Викман
источник
Это фантастическое использование, о котором pmsetя не знал. Спасибо, что обратили на это мое внимание.
Фил Кальвин
Что вы делаете, если процесс не запущен и PreventUserIdleDisplaySleepвсе еще имеет значение 1?
Абхи Бекерт,
4

У меня была такая же проблема с моим MacBook Pro 3,1. Это очень расстраивает. Я зашел так далеко, что полностью переустановил OS X, что не решило проблему. Это наводит меня на мысль, что в моем случае это скорее всего проблема с оборудованием.

Я отказался от устранения проблемы и просто использую PleaseSleep .

PleaseSleep - это служебная программа, разработанная для Mac OS X, которая помогает перевести компьютер в спящий режим, когда вы знаете, что какое-то другое приложение не позволяет вашему Mac перейти в спящий режим.

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

Грэхем
источник
Это страшно! Если я не смогу найти «правильное» решение, я обязательно попробую этот продукт и приму ваш ответ. Тем не менее, я упрямый и не хочу сдаваться только сейчас. =)
Фил Кэлвин
Не работает 10.8
сорин
3

Наконец-то моя система снова надежно бездействует. Я изменил три вещи, чтобы достичь этой точки, и все они, я считаю, были участниками:

  • На моем основном томе было недостаточно дискового пространства (менее 5% свободного места). Ядро жаловалось на это system.log(можно просмотреть в Console.app) на время, когда оно должно было спать.

  • Я отключил Dropbox, который часто и неприятно обращается к диску и, как сообщается, предотвращает сон в Snow Leopard.

  • Я обновился с неловко старого Chromium по ночам, и сейчас у меня 11.0.658.0 (73560) . Есть несколько ошибок открыты об этом Chrome / Chromium предотвращения простоя сна. Однако я обнаружил это только после того, как система перешла в режим ожидания после перезагрузки без запуска программ.

Технические наблюдения следуют:

Стоит отметить, что панель предпочтений Energy Saver находится немного. Я установил его в режим сна и выключил экран через 1 минуту, но система фактически не переходит в режим ожидания на 3 минуты и 30 секунд, дайте или потратьте несколько секунд, чтобы написать образ безопасного сна. Экран на самом деле занимает 2 минуты, чтобы идти спать. Я подозреваю, что это тот случай, когда Apple знает лучше нас - 1 минута, вероятно, слишком быстра. Несмотря на это, это затрудняет отладку подобных проблем, потому что вам придется ждать дольше, чем указано, чтобы увидеть, действительно ли система будет спать.

То, что эти два приложения были участниками, несмотря на то, что они не делали ничего особенно интенсивного, говорит о том, что Snow Leopard что-то изменил в том, как система решает, может ли происходить бездействующий сон. Существует документированный API для отключения режима ожидания, но также представляется, что активность диска (в частности, запись) чаще, чем раз в минуту, также сбрасывает таймер отключения и, таким образом, задерживает режим ожидания. Таким образом, любое приложение, которое часто пишет, является возможной причиной. sudo fs_usage -e grep -f filesys | grep -e writeв окне терминала может помочь выявить виновных.

Фил Кальвин
источник
1
Использование команды здесь, вероятно, должно быть таким: sudo fs_usage -e grep -f filesys | grep write Без -e, это просто вырвет записи grep. Не полезно.
Доминик Хоптон
Интересный! Когда я тестировал это на Snow Leopard, рвоты не было, но на Льве это не так. Исправлена.
Фил Кэлвин
На дискуссионных форумах Apple есть довольно длинная тема, в которой говорится, что Lion представляет некоторые новые возможные проблемы со сном, связанные с принтерами и сетевыми ресурсами. Больше вещей, чтобы попробовать, если вы, как и я, в конце остроумия.
Фил Кэлвин
0

Может быть Spotlight индексации. Вы можете проверить это, перейдя в «Системные настройки»> «Прожектор»> «Результаты поиска» и сняв все отметки. Тогда посмотрите, не идет ли ваш MacBook спать.

conorgriffin
источник
Я отключил использование индексации mdutil -a -i off, но проблема не исчезла. Пожалуйста, дайте мне знать, если это не функционально эквивалентно вашему предложению.
Фил Кэлвин
Я не знаю, если это функционально то же самое. Но это быстро проверить, так почему бы не попробовать, как описано?
Коноргрифин
У тебя есть скайп?
Мартин Маркончини
@ martin-marconcini - Ты спрашиваешь @ Фил-Кельвина или меня?
Коноргрифин