Linux часто выполняет роль плоскости управления, шлюза или исходящего прокси для OpenClaw, а Mac, где реально идут сборки, может работать на MacCloud. Ниже предполагается дистрибутив с systemd (Ubuntu LTS, Debian, образы облаков). Цель — ясные права, предсказуемые перезапуски и удобный разбор сбоев.

1. Зачем отдельный пользователь и каталоги

Не запускайте рабочие процессы от root. Создайте системного пользователя и рабочий каталог для OpenClaw (например /var/lib/openclaw), храните конфигурацию и секреты под этим пользователем, чувствительные файлы с правами 600. Границы бэкапов, миграций и передач останутся очевидными.

2. Как писать устойчивый unit systemd

Используйте Type=simple или рекомендованный тип, явно задайте WorkingDirectory и EnvironmentFile. Включите Restart=on-failure с разумным RestartSec, чтобы аварийные циклы не сожрали CPU. Несколько экземпляров — через шаблоны или разные имена сервисов, без общего PID-файла.

Кратко: причины старта/остановки в journalctl -u лучше стыкуются с тикетами, чем случайные echo в скриптах.

3. Сеть и фаервол

По умолчанию — запрет входящих, открывать по необходимости. Если узел только исходящий клиент, входящие порты можно не открывать. Для связи с Mac на MacCloud предпочтительны фиксированный исходящий IP или частная сеть, чтобы проще строить белые списки в облаке. Пробои документируйте: порт и срок.

4. Журналы и ротация

Направляйте stdout/stderr в journald или в файлы под logrotate. Поля вроде run_id и step помогут сопоставлять с логами сборки на Mac. Заполненный диск валит всю оркестрацию — не забывайте лимиты.

5. Совместная работа с Mac-сборщиками

Linux отвечает за оркестрацию и колбэки, Mac — за Xcode и GUI. Долгие шаги размещайте там, где вы лучше контролируете срок аренды и биллинг. На Mac с посуточной/понедельной оплатой не запускайте неснимаемые длинные задачи у границы продления.

6. Чек-лист

  • Сервис работает под не root с минимальными правами на каталоги?
  • systemctl status показывает последние полезные строки лога при сбое?
  • Фаервол и облачные security groups сверены с обеих сторон?
  • На рост логов есть пороговые алерты?

Для отладки на десктопе см. руководство по WSL2; для CI — интеграцию с GitHub Actions.