Сон и питание

Не давайте Mac уснуть из Терминала с помощью caffeinate

Команда caffeinate не даёт Mac уснуть, пока выполняется задача. Она входит в macOS и не меняет никаких настроек.

Относится к: всем актуальным версиям macOS. Пути в «Системных настройках» указаны для macOS 13 Ventura и новее.Проверено: 29 октября 2026 г.

Симптомы

  • Загрузка, сборка или скрипт останавливается, когда Mac засыпает.
  • Удалённый сеанс или SSH-подключение обрывается через несколько минут без ввода.
  • Вам нужно, чтобы Mac не засыпал во время одной задачи, но менять настройки сна не хочется.

Вероятные причины

  • Сон при бездействии. macOS переводит Mac в режим сна, если какое-то время нет ввода с клавиатуры или мыши. Одна лишь сетевая активность не всегда этому мешает.
  • Сон дисплея. Дисплей выключается по собственному таймеру. На некоторых Mac после этого засыпает и система.
  • Крышка. Если закрыть крышку ноутбука Mac, он уснёт. caffeinate этого не меняет. См. Работа ноутбука Mac с закрытой крышкой.

Как проверить

  1. Откройте Терминал. Посмотрите, какие процессы сейчас не дают Mac уснуть.

    pmset -g assertions

    Вывод Список утверждений (assertions) вроде PreventUserIdleSystemSleep и процесс, который удерживает каждое из них.

  2. Посмотрите, какие настройки сна действуют сейчас.

    pmset -g

Как исправить

  1. Чтобы Mac не засыпал, пока выполняется одна команда, поставьте перед ней caffeinate -i. Утверждение снимается, когда команда завершается.

    caffeinate -i make
  2. Чтобы Mac не засыпал заданное время, укажите его в секундах с -t. В этом примере — два часа.

    caffeinate -i -t 7200
  3. Чтобы Mac не засыпал, пока не завершится процесс, укажите ID процесса с -w.

    caffeinate -i -w 12345
  4. Чтобы не выключался и дисплей, добавьте -d.

    caffeinate -d -i
  5. Чтобы остановить caffeinate, запущенный без команды, нажмите Control-C.

  6. Чтобы Mac не засыпал автоматически при выключенном дисплее, измените настройку. На ноутбуке Mac выберите меню Apple > «Системные настройки» > «Аккумулятор» > «Параметры». Включите «Предотвращать автоматический переход в режим сна при питании от адаптера, когда дисплей выключен».

  7. На настольном Mac выберите меню Apple > «Системные настройки» > «Энергосбережение». Включите «Предотвращать автоматический переход в режим сна, когда дисплей выключен».

С Kilobat

  1. Kilobat может не давать Mac уснуть, пока загрузка не затихнет, а затем разрешить сон. Откройте Kilobat в строке меню. Нажмите на чашку и выберите «До конца загрузок».

  2. CLI делает то же самое. Он останавливается, когда скорость 3 минуты держится ниже 16 KB/s.

    kilobat awake --until-quiet
  3. Чтобы Mac не засыпал, пока выполняется одна команда, и чтобы увидеть, сколько данных она передала, используйте awake --.

    kilobat awake -- make release
  4. Эти функции бесплатны. Шаги для приложения, CLI и MCP — в рецепте.

Вопросы

Не даёт ли caffeinate Mac уснуть с закрытой крышкой?

Нет. caffeinate отключает сон при бездействии. Если закрыть крышку, ноутбук Mac всё равно уснёт, если только к нему не подключены внешний дисплей, клавиатура и питание. См. Работа ноутбука Mac с закрытой крышкой.

Что делает параметр -s?

-s отключает системный сон. В man-странице сказано, что он работает, только когда Mac питается от сети.

Меняет ли caffeinate мои настройки?

Нет. Она создаёт утверждения питания (power assertions). Они снимаются, когда caffeinate завершается.

Источники

Источники проверены 29 октября 2026 г. Man-страницы — те, что установлены вместе с macOS; откройте любую командой man <name> в Терминале.