Работа с настройками энергосбережения в macOS через Terminal — это как тонкая настройка часового механизма. Один неверный параметр, и система может начать вести себя неожиданно. Например, после экспериментов с командой pmset disablesleep в выводе pmset -g может появиться строка SleepDisabled, которая не исчезает даже после попыток сброса.
Давайте разберёмся, почему это происходит и как вернуть системе «чистый» вид, если это вообще возможно.
Как работает pmset и при чём здесь SleepDisabled
Утилита pmset управляет параметрами энергосбережения macOS на низком уровне. Когда вы запускаете pmset -g, вывод делится на две части:
- System-wide power settings — глобальные настройки, которые могут быть изменены только с правами root.
- Currently in use — текущие активные параметры, включая те, что заданы для конкретного профиля питания (например, от батареи или сети).
Команда pmset disablesleep добавляет или изменяет параметр SleepDisabled в разделе System-wide power settings. Например:
sudo pmset disablesleep 1 # запрещает сон
sudo pmset disablesleep 0 # возвращает разрешение на сон
После этого в выводе pmset -g появится строка SleepDisabled 0, даже если вы сбросите настройки через pmset restoredefaults. Это происходит потому, что параметр сохраняется в системном файле настроек, который не очищается стандартными командами.
Кстати, технически SleepDisabled 0 и отсутствие этой строки эквивалентны: и то, и другое означает, что сон разрешён. Но визуальное присутствие строки может раздражать, особенно если вы стремитесь к «чистому» состоянию системы.
Почему SleepDisabled не исчезает и как с этим жить
Как показал анализ исходного кода IOKit (фреймворка, отвечающего за управление питанием), параметр SleepDisabled сохраняется в файле com.apple.PowerManagement.xml, который расположен в /Library/Preferences/SystemConfiguration/. Однако в современных версиях macOS структура хранения настроек может меняться, и прямое редактирование этого файла не рекомендуется — это может привести к нестабильной работе системы.
Что можно сделать:
- Смириться с наличием строки. Если
SleepDisabledустановлен в0, это не влияет на функциональность. - Полный сброс через NVRAM. Иногда помогает сброс параметров энергосбережения на уровне прошивки:
-Выключите Mac.
-Включите его и сразу зажмитеCmd + Option + P + R.
-Держите клавиши 20 секунд.
Этот метод не гарантирует удалениеSleepDisabled, но может восстановить другие параметры по умолчанию.
Если вы всё же хотите рискнуть, можно попробовать вручную удалить файл настроек:
sudo rm /Library/Preferences/SystemConfiguration/com.apple.PowerManagement.plist
sudo rm /Library/Preferences/SystemConfiguration/com.apple.PowerManagement.xml
После перезагрузки система создаст новые файлы с настройками по умолчанию. Но будьте осторожны: это может затронуть и другие параметры энергосбережения.
Альтернативные способы управления сном
Если задача — просто запретить или разрешить сон, лучше использовать официальные методы:
Через Системные настройки:
Перейдите в «Экономия энергии» и установите таймеры сна вручную.
Команда caffeinate:
caffeinate -d # предотвращает сон до завершения команды
Это временное решение, которое не оставляет следов в настройках.
Для серверов или длительных задач смело рекомендую использовать caffeinate или скрипты с pmset sleep 0, которые не модифицируют глобальные параметры. Например:
# Запретить сон на 2 часа
sudo pmset sleep 0 && sleep 7200 && sudo pmset sleep 1
Итог: macOS не предоставляет официального способа удалить строку SleepDisabled из вывода pmset -g, но её наличие не вредит системе. Если хочется идеального порядка — придётся смириться или искать нестандартные обходные пути. Главное — всегда делайте бэкап важных данных перед экспериментами с системными настройками.
