2026 OpenClaw на арендованном Mac Mini: пользовательские разделы и метки launchd для изоляции промышленной автоматизации и экспериментальных агентов
Операторы долгого хостинга и автоматизации держат на одной арендованной Mac Mini и стабильный OpenClaw для prod и агрессивные эксперименты одна ошибочная правка или общий stdout ломают неделю работы в режиме семь на двадцать четыре.
Здесь воспроизводимая схема разделить полосы по пользователям и каталогам назначить каждой полосе свой launchd Label разнести журналы и держать артефакты отката рядом. Дополните практику материалом OpenClaw и Ollama семь на двадцать четыре пошагово откройте главную страницу блога для списка статей и центр помощи для SSH и первичного доступа.
Три типичных провала без изоляции сред
- Общие учётные данные. Один пользователь с полным доступом к LaunchAgents ключам API и состоянию агента увеличивает радиус взрыва при утечке токена или ошибочном rm.
- Неявные права на файлы. Эксперименты создают загрузки и временные каталоги с мягкими правами prod читает или перезаписывает чужое состояние если владельцы не разведены и umask не зафиксирован.
- Дублирующиеся Label в plist. Копипаста
Labelведёт к тому чтоlaunchctlсообщает о конфликте или оба задания пишут в один файл stdout что маскирует инциденты на Mac Mini.
Матрица решений: промышленная полоса и лаборатория
| Тема | Prod автоматизация | Экспериментальные агенты |
|---|---|---|
| Модель учётной записи | Отдельный пользователь macOS с жёстким профилем shell | Второй пользователь или одноразовое поддерево домашнего каталога |
| Область launchd | LaunchAgent с умеренным ThrottleInterval у KeepAlive | Отдельный plist более высокий Nice ручной bootstrap до готовности |
| Пути данных | Версионируемый каталог и журнал аудита только дописывание | Скретч вне квот prod с явной политикой очистки |
| Политика изменений | Теги релизов и поэтапный выкат | Ночные сборки допускается поломка без эскалации |
Разметка разделов и каталогов
Создайте двух пользователей например ocprod и oclab на арендованной Mac Mini либо один интерактивный вход но два тома APFS с разными владельцами если провайдер выдаёт квоты по томам.
Зеркалируйте каркас каталогов OpenClaw/bin config state logs внутри домашнего дерева каждого владельца снимите бит групповой записи для пересекающихся путей храните секреты в разных связках ключей и задокументируйте пути чтобы следующий узел в аренду поднимался за часы а не дни.
Чек-лист внедрения
- Выделить учётки домашние каталоги и при наличии квоты APFS на диске.
- Развести
authorized_keysне переиспользовать один приватный ключ между полосами. - Закрепить рантаймы записать контрольные суммы в
versions.txt. - Собрать plist только с абсолютными путями и уникальными Label.
- Выполнить
launchctl bootstrap gui/$(id -u)и проверитьlaunchctl printпо каждому домену. - Включить ротацию журналов до перевода исходящего трафика на постоянный режим.
Два шаблона юнитов launchd
Каждый файл это корректный LaunchAgent в Library LaunchAgents владельца полосы глобально уникальный Label обязателен prod получает более длинный ThrottleInterval у KeepAlive лаборатория добавляет Nice десять чтобы всплески уступали стабильной полосе.
| Ключ | Prod юнит | Эксперимент |
|---|---|---|
| Label | com.example.openclaw.prod | com.example.openclaw.experiment |
| ProgramArguments | Бинарник и config prod.yaml | Бинарник и lab.yaml |
| RunAtLoad | true | false до ручного bootstrap |
| KeepAlive | SuccessfulExit false ThrottleInterval тридцать секунд | Crashed true ThrottleInterval десять секунд |
| StandardOutPath | logs/prod.stdout.log | logs/lab.stdout.log |
| SoftResourceLimits | Пример ResidentSetSize под семьдесят процентов устойчивой потребности памяти | Жёстче или отключить автоперезапуск до стабилизации |
Оберните строки в стандартный XML dict plist по одному файлу на полосу затем загрузите от имени соответствующего пользователя через gui домен.
Идея лимитов ресурсов
SoftResourceLimits в plist отражает rlimit BSD а не cgroups Linux поэтому сочетайте plist с лимитами параллелизма внутри OpenClaw чтобы суммарный RSS не выталкивал ядро macOS из унифицированной памяти на Mac Mini.
Если нужен жёсткий потолок для лаборатории поднимите агент в контейнере или отдельной среде а launchd оставьте снаружи как надзиратель детали зеркала по смыслу в гайде по лимитам и деградации.
- Prod: оставьте десять пятнадцать процентов памяти на системные демоны и файловый кэш.
- Лаборатория: снижайте параллелизм первым при термодросселе или росте swap.
- Наблюдаемость: держите те же пороги диска что и в руководстве по логам чтобы семь на двадцать четыре не остановился из за заполненного тома.
Журналы и ротация
Не указывайте один и тот же StandardOutPath для разных Label добавьте две строфы newsyslog.conf либо обёртку сжатия с недельным архивом на полосу шаблон порогов пятнадцать десять пять процентов свободного места см ротация логов и оповещения по диску.
Обновление и откат
Каталоги релизов вида OpenClaw/releases/2026.03.27a и атомарный симлинк на bin упрощают аудит откат это launchctl bootout смена симлинка bootstrap и пять минут наблюдения хвоста журнала полосы переносите бинарники из лаборатории в prod только после суток чистых метрик.
Опорные величины для внутренних регламентов тридцать секунд ThrottleInterval у prod десять секунд и Nice десять у лаборатории стартовый пример SoftResourceLimits около восьми гибибайт ResidentSetSize пороги диска пятнадцать десять пять процентов атомарная смена симлинка для отката меньше десяти минут простоя при подготовленном архиве.
Разбор ошибок и FAQ
Сообщение что сервис уже загружен bootstrap
Выполните launchctl bootout gui/$(id -u) com.example.openclaw.prod перед повторной загрузкой либо найдите второй plist с тем же Label в ином пути.
Permission denied на StandardOutPath
Пользователь задания должен владеть файлом лога удалите root владельца у устаревших файлов создайте пустые журналы от имени полосы и перезапустите юнит.
Лаборатория забирает CPU у prod
Снизьте параллелизм в конфиге агента поднимите Nice ограничьте контейнером или перенесите старт лаборатории на окно StartCalendarInterval вне пикового времени.
Нужен выделенный узел Apple Silicon под launchd и OpenClaw оформите покупку без обязательного входа сверьтесь с тарифами загляните в центр помощи и читайте блог RunMini включая материал семь на двадцать четыре и Ollama для постоянного контура.
Выберите узел и сценарий аренды
Нужна Mac Mini для раздельных полос OpenClaw и режима семь на двадцать четыре без смешения prod и лаборатории откройте главную сравните цены оформите аренду без входа в помощи SSH и VNC в блоге ещё гайды по изоляции и лимитам.
Закрепите схему изоляции на своём следующем узле: pokupka помощь без лишних шагов блог для обновлений по OpenClaw и Mac Mini.