Запланированные задания OpenClaw и работа без присутствия на облачном Mac mini (LaunchAgent, 2026)
Интерактивные демо просты—продакшен-автоматизация значит, что 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 в словарь plistEnvironmentVariables— не только в~/.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.
Чек-лист согласованности среды
- Скопируйте вывод интерактивного
printenvво временный файл. - Сравните с тем, что видит LaunchAgent, через временное задание
env > /tmp/openclaw-agent.env. - Выровняйте
PATH, если нужен/opt/homebrew/bin. - Убедитесь, что
OPENCLAW_STATE_DIRуказывает на локальный SSD — не на облачный Desktop.
Логи и ротация
Используйте StandardOutPath и StandardErrorPath в каталог пользователя, напр. ~/Library/Logs/OpenClaw/. Ротация еженедельно или при ~100 МБ. Регулируемые команды — ERROR в SIEM без промптов модели. Перед тикетом вендора сверьтесь с восстановлением развёртывания.
Матрица сбоев
| Симптом | Вероятная причина | Исправление |
|---|---|---|
| Задание не стартует | Некорректный XML plist или label | plutil -lint + launchctl print gui/$(id -u) |
| 401 от API LLM | Нет разблокировки связки в headless | Предварительно авторизуйте ключи одной VNC-сессией по гайду VNC |
| Двойные запуски | Два plist с пересекающимися label | Удалите старый plist, bootout, один bootstrap |
Пятиступенчатый runbook восстановления
- Сохраните последние 200 строк stdout/stderr.
- Проверьте сетевой egress по статье прокси / WireGuard.
- Сравните diff окружения интерактивной оболочки и plist.
- Перезапустите задание:
launchctl kickstart -k gui/$(id -u)/label.here. - Задокументируйте причину в тикете справки с метками времени.
Частые вопросы
Нужен ли 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-ключи после выхода из системы