ИИ / Автоматизация 11 апреля 2026 г.

Запланированные задания OpenClaw и работа без присутствия на облачном Mac mini (LaunchAgent, 2026)

Инженерная команда ProxyMac 11 апреля 2026 г. ~11 мин чтения

Интерактивные демо просты—продакшен-автоматизация значит, что OpenClaw просыпается во вторник в 03:15, пока ноутбук закрыт. На арендованном Mac mini это задача launchd, обычно через plist LaunchAgent под тем же пользователем macOS, что владеет состоянием OpenClaw. Этот playbook 2026 сравнивает cron и LaunchAgent, показывает ловушки паритета среды, ломающие HTTPS-прокси, и даёт логирование и восстановление в духе установки и развёртывания, продакшен-воркфлоу и диагностики и восстановления. Базовые требования безопасности — в OpenClaw: безопасность и секреты.

TL;DR

  • Используйте LaunchAgents в ~/Library/LaunchAgents для пользовательских заданий OpenClaw; избегайте root cron без полного понимания картирования прав.
  • Дублируйте HTTPS_PROXY, NO_PROXY и переменные API в словарь plist EnvironmentVariablesне только в ~/.zshrc.
  • Направляйте stdout/stderr в ротируемые файлы; оповещайте о ненулевом коде выхода.
  • После правок plist: launchctl bootout gui/$(id -u) затем bootstrap, чтобы не плодить демоны.

LaunchAgent и cron (таблица выбора)

ВариантЛучше всего когдаРиск
LaunchAgentПользовательский CLI OpenClaw с секретами связки ключейОпечатки ключей plist падают тихо
LaunchDaemonСистемный инструмент для нескольких пользователейСложнее TCC; избегайте без необходимости
cronОбертка, выполняющаяся под нужным пользователемНет GUI-сессии — запросы связки могут зависнуть

Рекомендуемый шаблон plist

Минимум аргументов: ProgramArguments на бинарник OpenClaw или shell-обёртку, пути конфигурации явно. StartCalendarInterval для расписания по часам, StartInterval для опроса. ThrottleInterval при лимитах API.

Совет: храните plist (без секретов) в VCS, чтобы diff ловил регресс среды.

Чек-лист согласованности среды

  1. Скопируйте вывод интерактивного printenv во временный файл.
  2. Сравните с тем, что видит LaunchAgent, через временное задание env > /tmp/openclaw-agent.env.
  3. Выровняйте PATH, если нужен /opt/homebrew/bin.
  4. Убедитесь, что OPENCLAW_STATE_DIR указывает на локальный SSD — не на облачный Desktop.

Логи и ротация

Используйте StandardOutPath и StandardErrorPath в каталог пользователя, напр. ~/Library/Logs/OpenClaw/. Ротация еженедельно или при ~100 МБ. Регулируемые команды — ERROR в SIEM без промптов модели. Перед тикетом вендора сверьтесь с восстановлением развёртывания.

Матрица сбоев

СимптомВероятная причинаИсправление
Задание не стартуетНекорректный XML plist или labelplutil -lint + launchctl print gui/$(id -u)
401 от API LLMНет разблокировки связки в headlessПредварительно авторизуйте ключи одной VNC-сессией по гайду VNC
Двойные запускиДва plist с пересекающимися labelУдалите старый plist, bootout, один bootstrap

Пятиступенчатый runbook восстановления

  1. Сохраните последние 200 строк stdout/stderr.
  2. Проверьте сетевой egress по статье прокси / WireGuard.
  3. Сравните diff окружения интерактивной оболочки и plist.
  4. Перезапустите задание: launchctl kickstart -k gui/$(id -u)/label.here.
  5. Задокументируйте причину в тикете справки с метками времени.

Частые вопросы

Нужен ли cron?

Только если минимальная обёртка поднимает правильный контекст пользователя. Для прав рядом с GUI по умолчанию — LaunchAgent.

Почему пропал HTTPS_PROXY?

LaunchAgent не читает shell-профили — дублируйте переменные в plist или общем config на диске.

Где хранить логи?

Пути stdout/stderr plist в домашнем каталоге, агрессивная ротация, секреты не писать.

Зачем Mac mini ProxyMac для постоянного OpenClaw

Ноутбуки спят, дата-центры нет. Выделенный HK/JP/KR/SG/US mini держит LaunchAgents при стабильном питании и охлаждении, а вы заходите по SSH согласно SSH и VNC. Масштабируйте на странице цен, когда окна пакетов пересекаются.

Всегда включённый Mac mini для OpenClaw

LaunchAgents, логи и API-ключи после выхода из системы