TL; DR: Internet Sharing мешает моему Mac спать. Мне нужно вручную спать системы на регулярной основе. Я хочу, чтобы настроить общий доступ к Интернету, чтобы прекратить предотвращать сон.
У меня дома есть iMac в моей спальне, слишком далеко от роутера, и я не могу использовать беспроводную связь, также покрытие 3G здесь ужасно, поэтому я включил общий доступ к Интернету, поэтому я могу использовать свой iPhone / iPad, подключенный через мой IMAC.
На работе я нахожусь в корпоративной сети, а беспроводная связь несколько неубедительна и слишком ограничена, поэтому я включил там общий доступ к Интернету на своем MacBook Pro, чтобы мой iPhone мог подключаться к внутренним вещам.
Проблема в том, что: когда я нажимаю ⌘+ ⌥+ ⏏(или > Спящий режим), ни один компьютер не переходит в спящий режим; если я сначала не отключу общий доступ к Интернету.
Дома я хочу, чтобы компьютер спал, пока я сплю (экономит электроэнергию + больше тишины), а на работе, когда я иду домой, я тоже хочу, чтобы он спал, поэтому мне не нужно закрывать все подключенные приложения (Adium, Colloquy и т. Д.) И открыть снова на следующий день.
Как я могу настроить pmset
или использовать Интернет, чтобы я мог спать на своем компьютере, не сталкиваясь с этой проблемой?
Примечание: я уже использовал, pmset
чтобы проверить, были ли другие причины, и оскорбление pid
всегда com.apple.InternetSharing
.
Редактировать: я понимаю, что спящий компьютер сделает невозможным использование интернет-обмена. Я хочу, чтобы он полностью спал, и я хочу, чтобы общий доступ к Интернету снова включался только после пробуждения компьютера.
источник
DenySystemSleep
. Хотя я нашел строку, я не смог использовать ееsudo defaults write /Library/Preferences/SystemConfiguration/com.apple.nat
для изменения поведения. Не могли бы вы немного расширить свой ответ?Ответы:
Я экспериментировал с использованием ControlPlane для достижения того, что вы хотите. Мой предварительный результат заключается в том, что он будет делать то, что вы хотите.
ControlPlane обнаруживает изменения в вашей системе, называемые «источниками доказательств». Изменения оцениваются с помощью «правил», которые определяют изменение в «контексте». С каждым контекстом связаны «действия».
Одним из «источников доказательств» является событие сна / бодрствования. Поэтому я настроил правило так, чтобы при событии сна (например, если вы нажали кнопку сна в меню Apple), срабатывал контекст «Время сна». И для этого контекста я отключил действие «ToggleInternetSharing».
После нажатия на кнопку «Сон» я получаю предупреждение о том, что общий доступ к Интернету отключен, и через некоторое время (кажется, что это навсегда, но, вероятно, всего 10 или 20 секунд) Mac переходит в режим сна.
И у меня есть второе правило, чтобы при событии пробуждения срабатывал контекст «Пробуждение», и это действие позволяло включить «ToggleInternetSharing».
Мои правила и действия:
Попробуй это!
Это просто царапает поверхность того, что может сделать ControlPlane.
источник
OS X Mavericks v10.9.4
и до сих пор работает как шарм. Thank'sЕсли вы работаете Lion,
InternetSharing
явно блокировкаSystemSleep
. Посмотри на:Вывод этой команды: DenySystemSleep является доказательством,
InternetSharing
которое целенаправленно блокирует возможность ядра перейти в спящий режим. Этой защите есть простое объяснение: послеInternetSharing
запуска клиенты этого Mac могут использовать его в качестве маршрутизатора для доступа в Интернет. Многие вещи могут быть автоматически запущены поверх этого подключения к Интернету без какого-либо знания человека перед экраном.Эта связь должна быть нарушена только администратором системы, которая его запустила, а не каким-либо автоматическим поведением системы.
Это безопасное поведение.
Следовательно, правильный способ убедиться
InternetSharing
, что для режима сна Mac запланировано 4 события в следующем порядке:Это планирование, предлагаемое
ControlPlane
.источник
DenySystemSleep
. Хотя я нашел строку, я не смог использовать ееsudo defaults write /Library/Preferences/SystemConfiguration/com.apple.nat
для изменения поведения. Не могли бы вы немного расширить свой ответ?Нецелесообразно, чтобы Mac с включенным общим доступом к Интернету мог спать.
Функция общего доступа к Интернету - это версия программного обеспечения маршрутизатора: она выполняет роль шлюза в Интернет, сервера DHCP, брандмауэра и сервера пересылки DNS. Он функционирует так же, как маршрутизаторы, которые вы можете купить у местного продавца; и это бесплатно.
Однако есть огромный недостаток: если Mac, который действует как шлюз, выключен или спит, то другие машины не могут подключиться к сети.
Вот почему Internet Sharing не позволяет вашей машине перейти в спящий режим.
Но я могу поделиться файлами / iTunes / Screen, когда он спит
Да, вы можете поделиться всем этим и многим другим. Однако, когда вы переходите к этим файлам, ваш Mac просыпается . Это называется Wake On Demand и Bonjour Sleep Proxy .
Когда ваш Mac спит, он поддерживает некоторое сетевое соединение; он слушает, чтобы "пакеты" Bonjour разбудили компьютер. Это обрабатывается самим устройством Airport (сетевым адаптером); не компьютер. Когда он получает «пакет пробуждения», Mac просыпается, и вы можете начать совместное использование ресурсов.
Bonjour 1 - это служба обнаружения с нулевой конфигурацией, которая использует многоадресные службы доменных имен (mDNS), которые являются протоколом UDP 2 (он транслируется и не может быть маршрутизирован), который является небольшим, без сохранения состояния и минимальным транспортом, ориентированным на сообщения.
По сути, UDP (на чем основан Bonjour) идеально подходит для отправки на ваш компьютер сообщения «Проснись!».
Для просмотра Internt (используйте компьютер за шлюзом Mac) вам необходим полный стек протоколов, основанный на TCP . Ему понадобятся DHCP, NAT, брандмауэр и т. Д., Что означает, что ему придется раскрутить все эти сервисы, прежде чем клиенты смогут просматривать веб-страницы. Это внесет большую задержку.
Возвращаясь к более прагматичному подходу: если ваш Mac ложится спать и действует как шлюз, он либо никогда не засыпает, либо поднимается и опускается, как кто-то с тяжелой формой бессонницы.
1 Bonjour - это реализация Apple сети с нулевой конфигурацией (zeroconf), группы технологий, которая включает в себя обнаружение служб, назначение адресов и разрешение имен хостов. Добрый день находит устройства, такие как принтеры, другие компьютеры и сервисы, которые эти устройства предлагают в локальной сети, используя служебные записи системы доменных имен (mDNS).
2 UDP - это минимальный протокол транспортного уровня, ориентированный на сообщения. UDP не предоставляет никаких гарантий протоколу верхнего уровня для доставки сообщений, а уровень UDP не сохраняет состояния сообщений UDP после их отправки. Это просто, подходит для начальной загрузки или других целей без полного стека протоколов, таких как DHCP и Trivial File Transfer Protocol.
источник
Число рейнольдса ControlPlane, это работает для меня ...
источник
Когда блок управления питанием компьютера переводит устройство в спящий режим, он переходит в режим пониженного энергопотребления. Ваш средний исполняемый код на компьютере не выполняется обычным образом: компьютер поддерживает достаточно энергии для обновления памяти (при необходимости) и немного больше. Вы не сможете заниматься вычислениями общего назначения, пока компьютер спит.
Тем не менее, есть хорошая альтернатива, на которую вы должны обратить внимание. Вместо того, чтобы спать весь блок, проверьте показ сна в
System Preferences -> Energy Saver
. В моем сценарии использования у меня есть настройка «горячих углов» (которую вы можете включитьSystem Preferences -> Desktop & Screen Saver -> Screen Saver
), так что, когда я иду на обед и мне нужно заблокировать экран и / или просто перевести дисплей в спящий режим, я перехожу к нижней части. -левый угол. У меня хорошо работает, компьютер не выходит из режима сна, и любые длительные процессы, о которых я забыл, не прерываются. В вашем случае это означает, что ваша точка доступа WiFi не будет сброшена.источник
Вы можете использовать Power Manager, чтобы перевести Mac в режим сна после периодов бездействия. Power Manager может отменять процессы и приложения, которые блокируют режим ожидания, включая общий доступ к Интернету.
Руководство пользователя рассказывает, как это настроить:
Кроме того, следующий рецепт показывает, как создать событие Power Manager, чтобы перевести ваш Mac в спящий режим после периода бездействия .
Отказ от ответственности: я работаю в компании, которая разрабатывает Power Manager.
источник