AI / 자동화 2026년 4월 11일

OpenClaw 예약 작업과 무인 실행: 클라우드 Mac mini의 LaunchAgent 플레이북(2026)

ProxyMac 엔지니어링 팀 2026년 4월 11일 약 11분 읽기

인터랙티브 데모는 쉽지만 프로덕션 자동화는 화요일 03:15에 OpenClaw가 깨어날 때 노트북은 닫혀 있습니다. 임대 Mac mini에서는 그 일이 launchd—보통 OpenClaw 상태를 가진 동일 macOS 사용자의 LaunchAgent plist—에게 갑니다. 이 2026 플레이북은 cron과 LaunchAgent를 비교하고, HTTPS 프록시를 깨는 환경 일치 함정을 보여 주며 설치 및 배포, 프로덕션 워크플로, 문제 해결 및 복구에 맞춘 로깅과 복구 단계를 제공합니다. 보안 기준선은 OpenClaw 보안 및 시크릿에 있습니다.

TL;DR

  • 사용자 범위 OpenClaw 작업에는 ~/Library/LaunchAgentsLaunchAgent를 사용하고, 권한 매핑을 완전히 이해하지 않는 한 root cron을 피하세요.
  • HTTPS_PROXY, NO_PROXY, API 관련 변수를 plist EnvironmentVariables에도 복제—~/.zshrc에만 두지 마세요.
  • stdout/stderr를 로테이션 파일로 보내고 비영 종료 코드를 알립니다.
  • plist 편집 후 launchctl bootout gui/$(id -u) 다음 bootstrap으로 중복 데몬을 방지합니다.

LaunchAgent vs cron(결정표)

옵션가장 좋을 때위험
LaunchAgent키체인 비밀이 있는 사용자별 OpenClaw CLIplist 키 오타는 조용히 실패
LaunchDaemon다중 사용자 공유 시스템 도구TCC가 더 어렵습니다. 필수가 아니면 피하세요
cron올바른 사용자로 exec하는 래퍼 호출GUI 세션 없음—키체인 프롬프트가 멈출 수 있음

권장 Plist 패턴

인수는 최소로: ProgramArguments를 OpenClaw 바이너리나 셸 래퍼로 지정하고 설정 경로를 명시합니다. 시계는 StartCalendarInterval, 주기 폴링은 StartInterval. 벤더 API 버스트 제한이 있으면 ThrottleInterval을 함께 쓰세요.

팁: plist(비밀 제외)를 버전 관리에 두어 환경 회귀를 diff로 잡으세요.

환경 일치 체크리스트

  1. 대화형 printenv 출력을 스크래치 파일에 복사합니다.
  2. 임시 작업으로 env > /tmp/openclaw-agent.env를 실행해 LaunchAgent가 보는 환경과 diff합니다.
  3. /opt/homebrew/bin에 의존하면 PATH를 맞춥니다.
  4. OPENCLAW_STATE_DIR이 로컬 SSD를 가리키는지 확인—클라우드 동기 데스크톱 폴더는 피합니다.

로그 및 로테이션

StandardOutPathStandardErrorPath를 사용자 소유 디렉터리로, 예 ~/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단계 복구 런북

  1. stdout/stderr 마지막 200줄을 확보합니다.
  2. 프록시 / WireGuard 글에 따라 이그레스를 검증합니다.
  3. 대화형 셸과 plist의 환경 diff를 비교합니다.
  4. launchctl kickstart -k gui/$(id -u)/label.here로 재시작합니다.
  5. 타임스탬프와 함께 근본 원인을 도움말 티켓에 기록합니다.

자주 묻는 질문

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로 접속합니다. 배치 창이 겹치면 가격 페이지에서 확장하세요.

상시 Mac mini로 OpenClaw

LaunchAgent, 로그, 로그아웃 후에도 남는 API 키