OpenClaw 예약 작업과 무인 실행: 클라우드 Mac mini의 LaunchAgent 플레이북(2026)
인터랙티브 데모는 쉽지만 프로덕션 자동화는 화요일 03:15에 OpenClaw가 깨어날 때 노트북은 닫혀 있습니다. 임대 Mac mini에서는 그 일이 launchd—보통 OpenClaw 상태를 가진 동일 macOS 사용자의 LaunchAgent plist—에게 갑니다. 이 2026 플레이북은 cron과 LaunchAgent를 비교하고, HTTPS 프록시를 깨는 환경 일치 함정을 보여 주며 설치 및 배포, 프로덕션 워크플로, 문제 해결 및 복구에 맞춘 로깅과 복구 단계를 제공합니다. 보안 기준선은 OpenClaw 보안 및 시크릿에 있습니다.
TL;DR
- 사용자 범위 OpenClaw 작업에는
~/Library/LaunchAgents의 LaunchAgent를 사용하고, 권한 매핑을 완전히 이해하지 않는 한 root cron을 피하세요. HTTPS_PROXY,NO_PROXY, API 관련 변수를 plistEnvironmentVariables에도 복제—~/.zshrc에만 두지 마세요.- stdout/stderr를 로테이션 파일로 보내고 비영 종료 코드를 알립니다.
- plist 편집 후
launchctl bootout gui/$(id -u)다음bootstrap으로 중복 데몬을 방지합니다.
LaunchAgent vs cron(결정표)
| 옵션 | 가장 좋을 때 | 위험 |
|---|---|---|
| LaunchAgent | 키체인 비밀이 있는 사용자별 OpenClaw CLI | plist 키 오타는 조용히 실패 |
| LaunchDaemon | 다중 사용자 공유 시스템 도구 | TCC가 더 어렵습니다. 필수가 아니면 피하세요 |
| cron | 올바른 사용자로 exec하는 래퍼 호출 | GUI 세션 없음—키체인 프롬프트가 멈출 수 있음 |
권장 Plist 패턴
인수는 최소로: ProgramArguments를 OpenClaw 바이너리나 셸 래퍼로 지정하고 설정 경로를 명시합니다. 시계는 StartCalendarInterval, 주기 폴링은 StartInterval. 벤더 API 버스트 제한이 있으면 ThrottleInterval을 함께 쓰세요.
환경 일치 체크리스트
- 대화형
printenv출력을 스크래치 파일에 복사합니다. - 임시 작업으로
env > /tmp/openclaw-agent.env를 실행해 LaunchAgent가 보는 환경과 diff합니다. /opt/homebrew/bin에 의존하면PATH를 맞춥니다.OPENCLAW_STATE_DIR이 로컬 SSD를 가리키는지 확인—클라우드 동기 데스크톱 폴더는 피합니다.
로그 및 로테이션
StandardOutPath와 StandardErrorPath를 사용자 소유 디렉터리로, 예 ~/Library/Logs/OpenClaw/. 주간 또는 파일이 ~100MB를 넘으면 로테이션. 규제 팀은 ERROR를 SIEM으로내되 모델 프롬프트는 제거합니다. 벤더 티켓 전에 배포 복구와 교차 확인하세요.
실패 매트릭스
| 증상 | 유력 원인 | 조치 |
|---|---|---|
| 작업이 시작되지 않음 | plist XML 오류 또는 label 오류 | plutil -lint + launchctl print gui/$(id -u) |
| LLM API 401 | 헤드리스에서 키체인 잠금 해제 누락 | VNC 가이드대로 한 번 VNC로 사전 승인 |
| 중복 실행 | label이 겹치는 plist 두 개 | 오래된 plist 삭제, bootout 후 bootstrap 한 번 |
5단계 복구 런북
- stdout/stderr 마지막 200줄을 확보합니다.
- 프록시 / WireGuard 글에 따라 이그레스를 검증합니다.
- 대화형 셸과 plist의 환경 diff를 비교합니다.
launchctl kickstart -k gui/$(id -u)/label.here로 재시작합니다.- 타임스탬프와 함께 근본 원인을 도움말 티켓에 기록합니다.
자주 묻는 질문
cron은 언제 써야 하나요?
최소 래퍼가 올바른 사용자 컨텍스트로 승격될 때만. GUI 인접 권한에는 LaunchAgent가 macOS 기본입니다.
HTTPS_PROXY가 사라진 이유는?
LaunchAgent는 셸 프로필을 읽지 않습니다—plist나 공유 설정 파일에 변수를 복제하세요.
로그는 어디에?
plist stdout/stderr를 홈 아래에 두고 공격적으로 로테이션하며 비밀은 로그에 남기지 마세요.
상시 OpenClaw에 ProxyMac Mac mini를 쓰는 이유
노트북은 잠들고 데이터센터는 잠들지 않습니다. 전용 HK/JP/KR/SG/US mini는 안정 전력과 냉각으로 LaunchAgent를 유지하고, 사람은 SSH vs VNC로 접속합니다. 배치 창이 겹치면 가격 페이지에서 확장하세요.