2026 OpenClaw 실전
대여 Mac Mini에서 사용자 파티션·launchd 라벨로 프로덕션 자동화와 실험 에이전트 격리
환경 격리·7x24 체크리스트
장기 호스팅·7x24로 대여 Mac Mini 한 대에 OpenClaw 프로덕션과 실험을 같이 올리면 권한·로그가 섞이기 쉽습니다. 사용자 파티션·launchd 라벨·분리 로그·plist·바이너리 쌍 롤백 순서를 정리했습니다. OpenClaw 7x24 기존 글·블로그 홈·고객센터.
핵심 리스크
- 단일 계정은 키·상태 경계가 흐려집니다.
- 라벨·로그 공유는 7x24 추적을 망칩니다.
- 업그레이드 시 plist·바이너리를 쌍으로 안 묶으면 롤백이 늦습니다.
실행 단계 요약
- 프로덕션·실험 사용자 또는 두 홈 트리로 쓰기 경계 고정.
- 트리마다 런타임·버전 매니페스트, 서로 비덮음.
- 사용자별 LaunchAgent,
Label·stdout·stderr 경로 분리. launchctl검증 후 7x24 부하 연결.- 로그 로테이션·디스크 임계치, 배포는 plist·바이너리 타임스탬프 아카이브.
파티션·디렉터리 규약
이중 사용자는 키체인·임시까지 분리됩니다. 한 계정이면 트리 두 개에 ACL로 실험 쓰기 차단. 프로덕션에 자격·append 로그, 실험에 브랜치·캐시. 교환은 읽기 전용·이름에 환경 접미사.
| 축 | 단일 혼합 | 이중+라벨 |
|---|---|---|
| 권한 | 모호 | 소유 분리 |
| launchd | 라벨 충돌 | 라벨·로그 1:1 |
| 7x24 | 실험이 공용 잡아먹음 | 실험만 한도·bootout |
launchd 유닛 템플릿 2종
경로·사용자 치환. Label 전역 유일, plist 소유=실행 사용자.
프로덕션
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0"><dict>
<key>Label</key><string>com.yourorg.openclaw.prod</string>
<key>ProgramArguments</key><array>
<string>/Users/ocprod/bin/openclaw</string><string>run</string>
</array>
<key>WorkingDirectory</key><string>/Users/ocprod/oc</string>
<key>StandardOutPath</key><string>/Users/ocprod/logs/prod.out.log</string>
<key>StandardErrorPath</key><string>/Users/ocprod/logs/prod.err.log</string>
<key>KeepAlive</key><dict><key>SuccessfulExit</key><false/></dict>
<key>ThrottleInterval</key><integer>30</integer>
</dict></plist>
실험
<?xml version="1.0" encoding="UTF-8"?>
<plist version="1.0"><dict>
<key>Label</key><string>com.yourorg.openclaw.lab</string>
<key>ProgramArguments</key><array>
<string>/Users/oclab/bin/openclaw</string><string>run</string>
<string>--profile</string><string>lab</string>
</array>
<key>WorkingDirectory</key><string>/Users/oclab/oc</string>
<key>StandardOutPath</key><string>/Users/oclab/logs/lab.out.log</string>
<key>StandardErrorPath</key><string>/Users/oclab/logs/lab.err.log</string>
<key>Nice</key><integer>10</integer>
<key>ThrottleInterval</key><integer>120</integer>
</dict></plist>
자원 한도 아이디어
Nice·SoftResourceLimits·OpenClaw 동시성. 프로덕션 메모리 여유, 실험은 동시성↓. 점검 시 실험만 bootout. 상세 자원 한도 글.
로그·로테이션
newsyslog 규칙 분리·집계에 환경 키. 디스크·웹훅은 로그 로테이션 글. 압축 보관 2세대.
업그레이드·롤백
헬스 확인 후 유지 창에 실험부터 내림. 바이너리 타임스탬프·bin 심링크 전환. 이상 시 bootout·이전 트리 bootstrap·로그 tail. 실험 캐시는 프로덕션 백업 제외.
트러블슈팅·FAQ
로드됐는데 프로세스가 안 뜨나요?
동일 사용자로 명령 직접 실행해 오류 확인. 작업디렉터리·plist·권한 점검.
로그가 폭주하거나 디스크 알람이 온다면?
stdout 경로 중복·로테이션·재시도 루프 확인. 실험 라벨 내리고 경로 분리.
실험이 CPU를 잡아먹을 때
Nice·한도·동시성↓ 또는 StartCalendarInterval·실험 plist 끄기.
인용 포인트
- Label 복붙 후 전역 중복 검사.
- 스로틀 프로덕션 30초·실험 120초+ 권장.
- 실험→프로덕션 쓰기 차단·자격 분리.