Предотвращение сна закрытого Macbook при запуске

794
Craig Otis

У меня есть старый Macbook, который я собираюсь положить в шкаф для использования в качестве медиасервера. В настоящее время работает InsomniaX, чтобы он не спал, когда крышка закрыта.

Это прекрасно работает, когда я запускаю Macbook с открытой крышкой, подождите, пока он загрузится на рабочий стол (автоматический вход включен), затем закройте крышку. Он продолжает работать. Это хорошо.

Проблема в том, что когда я запускаю ноутбук с уже закрытой крышкой, он загружается на рабочий стол, но обнаружение крышки переводит компьютер в спящий режим до того, как InsomniaX сможет загрузить его. (Даже если это один из элементов входа для учетной записи.)

Есть ли способ, будь то хакерский, технический и т. Д., Чтобы не допустить немедленного сна ноутбука? Даже если бы он вращался на рабочем столе в течение 30 секунд, это дало бы InsomniaX время для загрузки.

5

1 ответ на вопрос

3
slhck

Создайте хук входа в систему, который вызывает скрипт. Давайте назовем этот сценарий noidleи поместим его где-нибудь, возможно ~/noidle.sh.

#!/bin/sh pmset -a disablesleep 1 

Этот скрипт должен запускаться один раз и мешать спать. Чтобы добавить это в качестве входа в систему, запустите:

chmod +x /Users/your-username/noidle.sh sudo defaults write com.apple.loginwindow LoginHook /Users/your-username/noidle.sh 
Ха-ха, к сожалению, недостатком этого является то, что когда он запускается как LoginHook, так как скрипт никогда не заканчивается, я не могу больше загружаться в свою учетную запись. :) Жизненный цикл входа в систему, кажется, ждет завершения этого сценария, прежде чем перейти к рабочему столу, поэтому теперь он просто висит на синем экране. Craig Otis 12 лет назад 0
Хм. Можете ли вы попробовать `pmset noidle &`, который должен перевести его в фоновый режим и выйти правильно. slhck 12 лет назад 0
Пробовал это, но похоже, что когда он работает в фоновом режиме, это на самом деле не мешает машине спать. Craig Otis 12 лет назад 0
Ах, ха! Я думаю, что получил его, изменив содержимое файла noidle.sh на `pmset -a disablesleep 1`. (Так как хук входа в систему запускается с правами root, `sudo` можно не указывать.) Woo hoo! Craig Otis 12 лет назад 0

Похожие вопросы