Как убрать SleepDisabled из вывода pmset в macOS

Работа с настройками энергосбережения в 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, но её наличие не вредит системе. Если хочется идеального порядка — придётся смириться или искать нестандартные обходные пути. Главное — всегда делайте бэкап важных данных перед экспериментами с системными настройками.

Добавить комментарий

Все поля обязательны к заполнению. Ваш адрес email не будет виден никому.

Новое
Интересное