Как запретить Mac или ПК засыпать, пока работает ИИ-агент
Не дайте Mac или ПК с Windows уснуть, пока агент для кода выполняет долгую задачу: через caffeinate или настройки сна. А потом верните прежние настройки.
Чтобы Mac не засыпал, пока работает агент для кода, откройте «Терминал», выполните caffeinate -i и не закрывайте окно до конца задачи. В Windows 11 задайте в «Параметрах» для спящего режима при питании от сети значение «Никогда», а потом верните прежнее. Ноутбук держите подключённым к адаптеру питания, с открытой крышкой.
Здесь речь о macOS и Windows 11, а работа ноутбука с закрытой крышкой не рассматривается. Mono от Reunified может не давать Mac засыпать, пока работает агент, но эти шаги подходят для любого агента.
1. Поймите, что сон делает с сессией агента
Сон приостанавливает все программы, включая агента, и разрывает их сетевые соединения. После этого сессия может не восстановиться корректно.
- Сон дисплея только выключает экран. Программы продолжают работать.
- Сон при бездействии останавливает компьютер, если какое-то время нет ввода. Занятый работой агент вводом не считается.
- Закрытие крышки ноутбука обычно переводит его в сон, что бы ни было указано в настройках бездействия.
- Выключение или перезагрузка завершают сессию.
Не рассчитывайте, что телефон разбудит спящий или выключенный компьютер.
Вымышленный пример: перед обедом вы оставляете агента обновлять зависимости и запускать тесты в своём проекте «tidy-recipes». Это примерно 40 минут работы на MacBook Air, подключённом к питанию.
2. Не дайте Mac уснуть на время одной задачи с помощью caffeinate
Утилита caffeinate встроена в macOS. С ключом -i она не даёт системе уйти в сон при бездействии, пока работает. Когда она завершается, снова действуют ваши обычные настройки.
| Команда | Действие |
|---|---|
caffeinate -i |
Компьютер не спит, пока вы не остановите команду сочетанием Control-C |
caffeinate -i <command> |
Запускает команду, компьютер не спит до её завершения |
caffeinate -i -t 3600 |
Компьютер не спит 3600 секунд (час) |
caffeinate -i -w <pid> |
Компьютер не спит, пока этот процесс не завершится |
caffeinate -d |
Дисплей остаётся включённым |
Агент tidy-recipes работает в настольном приложении, поэтому запустить его через caffeinate не получится. Вместо этого вы выполняете caffeinate -i -t 3600 (час на 40 минут работы) и оставляете окно «Терминала» открытым. Идентификатор для -w есть в столбце PID в «Мониторинге системы», а все параметры перечислены в man caffeinate.
3. Измените настройки сна Mac для долгих сессий
Если агенты работают часами или каждый день, лучше изменить настройку. Где это сделать, показано в руководстве Apple по настройкам режима сна и выхода из него:
- Ноутбук: «Системные настройки» > «Аккумулятор» > «Параметры», включите «Не переходить в режим сна автоматически, когда дисплей выключен при работе от сети питания».
- Настольный Mac: «Системные настройки» > «Энергия», включите «Не переходить в режим сна автоматически при выключенном дисплее».
Apple предупреждает, что запрет на переход в режим сна может увеличить расход энергии. Параметр «Выводить из режима сна для доступа к сети» лишь позволяет Mac ненадолго просыпаться ради общих служб. Чтобы агент продолжал работать, этого параметра недостаточно.
В Mono на Mac в разделе «Настройки» > «Code» есть параметр «Не засыпать, пока работает агент», по умолчанию включённый. Он откладывает сон при бездействии, пока агент не закончит свой ход. Закрытие крышки всё равно переводит Mac в сон. Параметр «Работать при заблокированном экране», тоже включённый по умолчанию, позволяет открытым сессиям продолжать работу, когда экран заблокирован. В Windows у Mono нет настройки сна.
4. Не дайте ПК с Windows уснуть
В Windows 11 откройте «Пуск» > «Параметры» > «Система» > «Питание и батарея» (Power & battery) и раздел со временем ожидания экрана, спящего режима и гибернации (Screen, sleep, & hibernate timeouts), как показано в руководстве Microsoft по параметрам питания. На настольном компьютере эта страница может называться «Питание» (Power).
В пункте о переходе устройства в спящий режим (Make my device sleep after) запишите значение для работы от сети, затем выберите «Никогда» или время с большим запасом относительно длительности задачи.
На следующий день вы запускаете похожую 40-минутную задачу на «den-pc», настольном компьютере с Windows, который засыпает через 30 минут. Это меньше, чем длится задача, поэтому вы записываете 30 минут и выбираете «Никогда».
Чтобы позже вернуть таймер из терминала, используйте powercfg, который принимает значение в минутах: powercfg /change standby-timeout-ac 30.
5. Подготовьте долгую задачу, которую оставите без присмотра
Заполните эту таблицу перед уходом.
| Проверка | MacBook Air | den-pc (Windows) |
|---|---|---|
| Питание и крышка | Адаптер подключён, крышка открыта | Настольный, подключён к сети |
| Что не даёт уснуть | caffeinate -i -t 3600 |
Спящий режим: «Никогда» |
| Значение, которое нужно вернуть | Нет | 30 минут |
| Обновления установлены, перезагрузка не требуется | Да | Да |
| Агент работает, оповещения проверены, телефон заряжен | Да | Да |
Проследите за первым шагом агента, чтобы он не остановился на запросе входа в аккаунт или из-за отсутствующего инструмента. Настройте уведомления от агента для кода о завершении работы и запросах разрешений, а с помощью руководства по удалённой работе с кодом следите за ним с телефона.
6. Верните настройки, когда задача завершится
- Остановите
caffeinateсочетанием Control-C или дождитесь, пока истечёт заданное время. - Выключите параметры сна на Mac, которые вы включали.
- В Windows верните записанное время перехода в спящий режим (30 минут на den-pc).
Затем проверьте, что компьютеру больше ничто не мешает уснуть. На Mac выполните в «Терминале» pmset -g assertions и посмотрите раздел «Listed by owning process». caffeinate там быть не должно, а записи, связанные со звуком или системой, вполне обычны. В Windows выполните powercfg /requests в терминале, открытом от имени администратора. Команда выводит приложения и драйверы, которые не дают выключить дисплей или перевести компьютер в сон.
Напоследок проверьте изменения агента, прежде чем что-либо коммитить. Mono пока недоступен, но вы можете записаться в список ожидания.
