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.