OPENCLAW_2026
GATEWAY_
SYSTEMD_
LAUNCHD_RUNBOOK.

// Боль: каналы живы, Gateway падает — тишина. У Linux и Mac разные контракты супервизии. Итог: матрица, пять шагов, пакет отката, лестница диагностики. См. onboard и логи демона, Docker в проде, типичные ошибки, деплой на удалённый Mac, масштабирование ресурсов Mac, тарифы.

Операционная панель и автоматизация

1. Диагностика: ставится, но не живёт

(1) Путать демо-шелл с продом: интерактивный openclaw gateway доказывает бинарники и токены, а не политику рестартов. Без одного супервизора каждый reboot или OOM возвращает ручную работу. (2) Разные контракты ОС: в Linux — journald, лимиты cgroup и ночные security-патчи; в macOS — сон с закрытой крышкой, App Nap и граница LaunchDaemon / LaunchAgent. (3) Обновления без отката: быстрые релизы OpenClaw и дрейф Node/Python рассинхронизируют Gateway и адаптеры каналов; логи выглядят как «всё мёртво», хотя проблема — несовпадение версий.

Команды без письменного контракта супервизора копят «зомби-Gateway»: старый foreground держит порт, пока systemd поднимает новый — TLS дёргается, edge отдаёт 502. Гигиена: один владелец процесса, явные bind-адреса, строка в runbook: «остановить супервизор до ручного дебага».

Второй класс ошибок — двойной источник правды (серверный openclaw.json против локального onboard). Каналы зелёны, пока «последний писатель» случайно прав. Git с фильтром секретов, неизменяемые артефакты деплоя и checksum при загрузке убирают рулетку.

Долг наблюдаемости превращается в эмоциональный дебаг: слепые рестарты, ротация ключей API. Фиксированная лестница снижает среднее время до невиновности.

На Linux ночные обновления могут рубить длинные задачи — окна обслуживания или транзакционные обновления. На macOS обновления App Store/Xcode меняют порядок фреймворков; перед крупным скачком ОС — снимки и репетиция Gateway на клоне.

Двойной запуск даёт конфликт портов. В проде — один супервизор; перед отладкой остановить unit и проверить свободный порт.

2. Матрица systemd / launchd

ОсьLinux + systemdУдалённый Mac + launchd
Главный выигрышдёшевый публичный egress, без сна, облачная автоматизацияцепочки Apple, медиа, unified memory для sidecar LLM
Надзорunits, Restart=always, backoff, journalctlLaunchDaemon vs LaunchAgent; системный vs пользовательский домен
Питаниепочти без сна, CPU credits, шумные соседикрышка, App Nap, энергосбережение Wi‑Fi, при необходимости WOL
Откатpin пакета + tarball конфиговснимок APFS или параллельные деревья + фиксация plist
Якоря отладкиsystemctl status, ss -lntplaunchctl print, log show

2b. Правило одного супервизора

Либо systemd/launchd владеет Gateway, либо человек временно — никогда одновременно. Foreground-отладка допустима после остановки unit и проверки порта. Это правило убирает много гейзенбагов в мультиканальных схемах.

Шаблон инцидента: имя unit, label launchctl bootout, порт, секунды ожидания до «ОК». Неопределённые секунды стоят часов при нескольких респондерах.

3. Пять шагов укрепления

  1. Зафиксировать источник правды: строка версии, путь конфига, changelog.
  2. Базовая линия: openclaw status, openclaw gateway status, openclaw channels status --probe.
  3. Написать супервизор: systemd с EnvironmentFile и ulimits; plist с WorkingDirectory и StdOut/Err.
  4. Ограждения: лимит частоты рестартов; алерт при >3 падениях за 5 минут.
  5. Пакет отката: до апгрейда tarball конфигов + checksum бинарника.

Шаг 2 не обсуждается: если пробы красные, ковырять launchd — неверный слой. Каналы должны быть зелёны вручную до автоматизации.

Шаг 3: на Linux User=/Group=, на Mac отдельный сервисный аккаунт, чтобы права на каталоги skills не прыгали между админом и логином.

Шаг 4 останавливает crash-loop, сжигающий квоты API, часто принимаемый за «падение модели».

Между 3 и 4 — game day: убить процесс, супервизор должен поднять без человека; повторять после каждого major upgrade.

# Слойная диагностика (пути подстроить) # openclaw status # openclaw gateway status # openclaw logs --follow # openclaw doctor # openclaw channels status --probe

Если doctor чист, а ответы замирают — политики каналов: упоминания, allowlist, pairing, rate limit. doctor проверяет окружение, пробы — продукт.

Коррелируйте логи приложения с временем ядра: на Mac после power assertion и роуминга Wi‑Fi часто тихо отваливаются каналы; на Linux OOM в dmesg лучше объясняет потерю дочерних процессов, чем один стек приложения.

4. Пороги для SRE-доков

Цифры для дежурства:

  • Backoff рестартов (старт 5 c, потолок 60 c) против лавины к провайдерам.
  • Если без людей >2 раза в неделю все каналы красные — сон, DNS, TLS раньше модели.
  • Без выделенного SRE управляемый удалённый Mac с зафиксированным образом часто дешевле по TCO, чем несколько DIY Linux.

5. Linux или Mac

СигналШаг
только публичные webhook, headless окLinux + systemd + WAF/TLS на периметре
Shortcuts, локальные файлы, ProRes, AppleScriptудалённый Mac + launchd; Linux только опциональный reverse-proxy
мало грамотности в launchd/systemdкупить управляемые часы Mac с мониторингом вместо DIY-флота
комплаенс требует read-only rootfsконтейнерный путь (гайд Docker), но один супервизор Gateway

Используйте таблицу как премортем: если совпадает несколько строк — явно разделите роли по хостам и укажите, где хранится сейф токенов.

В стоимость включайте инженерные часы: чуть более дорогой Mac/час часто бьёт скрипты синхронизации между ОС по календарю.

MACGPU — для команд, которым нужно Apple-нативное поведение без CapEx и с предсказуемым BOM при дисциплине мониторинга и отката.

В гибриде распишите data plane: кто держит долгие WebSocket, кто подписывает Apple-специфичные полезные нагрузки, как обновлять клиентские TLS-сертификаты.

Любое изменение plist/unit — в changelog, хоть одна строка; git спасёт через месяцы.

6. FAQ

Вопросы прод-операторов начала 2026; пути и политики подставьте свои.

Doctor зелёный, нет ответов? Пробы и allowlist. Два пользователя на Mac? Разделить HOME, не шарить writable config. Ломается только после апгрейда? Порты, зомби-PID, перезаписанные env-файлы.

Gateway в Docker на Mac? Возможно, но тома с секретами и IPC усложняют; без стандарта контейнеров — нативный надзор. IPv6-only VPS? Выровнять DNS и SAN; ошибки AAAA дают полуоткрытые туннели. Слишком много логов? Структурированный JSON в коллектор; без сырого tail в прод-шелле.

Тест failover? Staging hostname, два прогона отката до прод-токенов. Секреты в Git? sops / sealed secrets; сырые ключи никогда.

journald съел улики? Вынести структурные логи наружу. launchd loaded, процесса нет? Коды выхода в log show. Gateway от root? Избегать; least privilege.

7. Кейс: слойная диагностика спасает сон

Хронологии инцидентов повторяются: крышка или работы хостера → Gateway down → часы крутки моделей. Зафиксированная пятиступенчатая лестница режет MTTR; дорогие ошибки почти всегда операционные.

Двойной источник конфигов даёт призрачные успехи; GitOps с checksum при загрузке сразу показывает дрейф.

Для Apple-heavy workflow выгодно держать Gateway на удалённом Mac — песочница и пути ближе к туториалам. Крупный TLS-терминатор можно оставить на Linux на периметре, но топология проще — сильнее.

Долгосрочно выигрывают команды с runbook: порты, health-команды, пути tarball отката на одной странице — это арендная плата за каждый сбой.

Безопасность: не светить management-порты; TLS на контролируемом прокси; крутить креды в том же ритме, что и апгрейды каналов.

Ёмкость: CPU Gateway редко узкое место; сетевые затыки и лимиты провайдеров — да. p95 задержки проб каналов еженедельно; диск кэша skills на маленьких VPS.

Управление изменениями: plist/unit как code review; пропущенная WorkingDirectory ломает относительные импорты skills. Diff перед reload, .bak с меткой времени.

Вендоры: к тикету приложить версию Gateway, вывод проб, редактированные куски конфига — «не воспроизвели» закрывают быстрее.

Люди: недельное дежурство с ротацией, но один архитектурный владелец Gateway — иначе конфликтующие политики рестартов.

8. Итог: Linux для входа, Mac для Apple-клея

(1) Ограничения: Linux слаб в Apple-only склейке; Mac слаб в истории самого дешёвого сырого egress. (2) Ценность удалённого Mac: единый надзор с креативными стеками, меньше cross-OS прыжков файлов. (3) MACGPU: арендовать предсказуемый узел Apple Silicon вместо шкафа-ЦОД — CTA к тарифам и помощи.

Гибрид нормален: токены на Linux, Apple-потоки на Mac — границу автоматизировать rsync/объектным хранилищем, не drag-and-drop по дрожащему туннелю.

Эксперимент: ручные проверки → systemd или launchd → алерты. Пропуск середины гарантирует ночные звонки.

Бюджет: время инженеров доминирует в TCO маленьких команд; управляемый удалённый Mac с мониторингом часто дешевле «бесплатного» VPS, сжигающего ночи. Наоборот: команда целиком на Linux без Apple API — не навязывайте Mac.

Обучение: пятиминутная запись здоровой последовательности проб рядом с runbook.

Празднуйте скучные недели: лучшие флоты OpenClaw ровные — графики плоские, пробы зелёные, апгрейды репетированы.