OPENCLAW_2026
GATEWAY_
SYSTEMD_
LAUNCHD_RUNBOOK.

// 문제: 데모에선 채널이 살아 있어도, 노트북 수면이나 VPS 재부팅 순간 프로덕션 Gateway는 죽습니다. Linux systemd와 macOS launchd는 재시작·로그·실행 사용자 계약이 다릅니다.결과: 비교 매트릭스, 5단계 강화, 롤백 팩 레시피, openclaw status에서 openclaw channels status --probe까지 고정 진단 사다리입니다.구성: 문제 분해, 표, 절차, 수치, 결정표, 사례, FAQ.연결: 온보딩·데몬 로그, Docker 프로덕션, 설치·오류 대응, 원격 Mac 배포, 원격 Mac 리소스, 요금제.

운영 대시보드와 자동화

1. 문제 정리: 설치는 되는데 상주가 깨짐

(1) 데모 셸을 운영과 혼동: 대화형 openclaw gateway는 바이너리·토큰 검증일 뿐 재시작 정책이 아닙니다. 단일 감독자 없이는 재부팅·OOM마다 다시 손이 갑니다.(2) OS별 계약 차이: Linux는 journald, cgroup 한도, 무인 보안 업데이트가 쟁점이고, Mac은 뚜껑 닫힘 수면, App Nap, LaunchDaemon과 LaunchAgent의 사용자 경계가 쟁점입니다.(3) 롤백 없는 업그레이드: OpenClaw와 Node/Python 드리프트로 Gateway와 채널 어댑터 버전이 어긋나면 로그는 “채널 전멸”처럼 보이지만 실제는 바이너리 쌍 불일치인 경우가 많습니다.

감독 계약을 문서로 남기지 않은 팀은 “좀비 Gateway”를 쌓습니다. 오래된 포그라운드 프로세스가 포트를 붙잡은 채 systemd가 새 프로세스를 띄우면 TLS 핸드셰이크가 들쭉날쭉하고 엣지 프록시에서 502가 납니다. 해결은 운영 위생입니다. 소유 프로세스는 하나, 바인드 주소를 명시하고, “수동 디버깅 전에 감독 중지”를 런북에 한 줄 넣습니다.

또 다른 함정은 이중 설정 소스입니다. 서버의 openclaw.json을 고치는 동안 다른 사람이 로컬에서 onboard를 다시 돌려 다른 경로에 씁니다. 채널은 “마지막으로 맞았던 쓰기”가 유효한 동안만 녹색입니다. 시크릿 필터링된 Git, 불변 배포 아티팩트, 부팅 시 체크섬으로 룰렛을 끝냅니다.

가시성 부채는 감정 디버깅으로 나타납니다. 로그 순서를 읽지 않고 서비스를 무작정 재시작하고, 모델 API 키까지 돌려버립니다. 고정 사다리가 평균 무죄 시간을 짧게 유지합니다.

Linux에선 무인 보안 패치가 긴 작업 중 서비스를 재시작할 수 있습니다. 유지보수 창을 정하거나 트랜잭셔널 업데이트를 검토합니다. Mac에선 App Store·Xcode 업데이트가 프레임워크 순서를 바꿉니다. 큰 OS 업그레이드 전 스냅샷을 찍고, 가능하면 클론에서 Gateway 기동을 리허설합니다.

이중 실행(수동 + systemd/launchd)은 포트 충돌의 대표 원인입니다. 운영에서는감독자는 하나만 두고, 디버깅 전 유닛을 멈춘 뒤 포트가 비었는지 확인합니다.

2. systemd vs launchd

차원Linux / systemdmacOS / launchd
목표저비용 고정 출구, 헤드리스 7×24, 클라우드 자동화Apple 툴체인, 단축어, 미디어, 통합 메모리 로컬 LLM
감독unit, Restart, 백오프, journalctlLaunchDaemon vs LaunchAgent, 시스템·로그인 도메인
전원수면 거의 없음, CPU 크레딧·노이즈 이웃뚜껑 닫힘, Wi‑Fi 절전, 필요 시 WOL·AC 정책
롤백패키지 핀 + 설정 tarballAPFS 스냅샷 또는 병렬 설치 트리 + plist 핀
디버그 앵커systemctl status, ss -lntplaunchctl print, log show

2b. 단일 감독자 규칙

프로덕션에선 systemd/launchd가 Gateway를 소유하거나 사람이 임시로 소유합니다. 동시에 둘 다는 안 됩니다. 포그라운드 디버깅은 유효하지만 그 전에 유닛을 멈추고 포트 해제를 확인합니다. 이 한 줄 규칙만으로 멀티채널의 하이젠버그가 크게 줄어듭니다.

인시던트 템플릿에 stop/start 순서를 적습니다. 유닛 이름, launchctl bootout 레이블, 비워야 할 포트, 성공 선언까지의 대기 초입니다. 애매한 초 단위는 동시 대응자가 있을 때 시간을 태웁니다.

3. 다섯 단계 강화

  1. 진실 공급원 동결: 버전 문자열, 설정 경로, 변경 로그 한 줄.
  2. 베이스라인: openclaw statusopenclaw gateway statusopenclaw channels status --probe.
  3. 감독 유닛: Linux는 EnvironmentFile·ulimits systemd. Mac은 WorkingDirectory·표준 출력/에러 경로 plist.
  4. 가드레일: 재시작 속도 제한. 5분 안에 3회 초과 크래시 시 알림.
  5. 롤백 팩: 업그레이드 전 설정 tarball + 바이너리 체크섬.

2단계는 타협 불가입니다. 프로브가 빨간데 launchd를 만지는 것은 레이어가 다릅니다. 수동으로도 채널이 녹색일 때만 자동화로 갑니다.

3단계에 Linux User=/Group=, Mac에선 가능하면 전용 서비스 계정을 넣어 스킬 디렉터리 권한이 관리자와 로그인 사용자 사이에서 흔들리지 않게 합니다.

4단계는 크래시 루프가 상류 API 쿼터를 태워 벤더 스로틀을 “모델 장애”로 오인하는 것을 막습니다.

3단계와 4단계 사이에 게임데이를 넣습니다. 의도적으로 Gateway 프로세스를 kill하고 감독이 사람 없이 복구하는지 검증합니다. 손 입력이 필요하면 자동화는 미완입니다. 메이저 업그레이드마다 반복합니다.

# 계층 진단 (경로는 설치에 맞게) # openclaw status # openclaw gateway status # openclaw logs --follow # openclaw doctor # openclaw channels status --probe

doctor가 깨끗해도 응답이 멈추면 채널 정책으로 올립니다. 멘션 규칙, allowlist, 페어링 대기, 속도 제한입니다. doctor는 환경, 프로브는 제품 행동을 검증합니다.

앱 로그와 커널 타임스탬프를 상관합니다. Mac에선 전원 assertion·Wi‑Fi 로밍 직후 채널이 조용히 끊깁니다. Linux에선 dmesg OOM이 자식 프로세스 소실을 설명합니다.

4. 인용 가능 수치

온콜 문서용:

  • 재시작 백오프(예: 시작 5초, 상한 60초)로 썬더링 허드를 피합니다.
  • 무인 구간에서 주 2회 이상 채널 전체 빨강이면 모델보다 수면·DNS·TLS 갱신을 먼저 의심합니다.
  • 전담 SRE가 없는 팀은 여러 Linux를 직접 굴리기보다감독형 원격 Mac+고정 이미지가 TCO에 유리한 경우가 많습니다.

5. Linux vs Mac 선택

신호조치
공개 Webhook·헤드리스만 필요Linux + systemd + WAF/TLS 엣지
단축어·로컬 파일·ProRes·AppleScript 혼합원격 Mac + launchd. Linux는 선택적 역프록시
launchd/systemd 숙련도 낮음모니터링 있는 관리형 Mac 시간 구매
컴플라이언스가 읽기 전용 rootfs 요구컨테이너 경로(도커 가이드)지만 Gateway 감독자는 하나

표를 프리모템으로 씁니다. 여러 행에 동시에 해당하면 호스트별 역할을 쪼개 토큰 금고를 누가 들지 명시합니다.

비용에 엔지니어 시간을 넣습니다. Mac 시간 단가가 조금 높아도 크로스 OS 파일 동기 스크립트를 없애면 캘린더가 이깁니다.

MACGPU는 CapEx 없이 Apple 네이티브 동작과 운용 분리의 예측 가능한 BOM을 원하는 팀용입니다. 마법은 아니지만 모니터링과 롤백 규율이 전제입니다.

하이브리드면 데이터 플레인을 밝힙니다. 장수명 WebSocket 소유 주체, Apple 전용 페이로드 서명 주체, TLS 클라이언트 인증서 갱신 주체입니다.

6. FAQ

2026년 초 운영자 질문을 압축했습니다. 경로·사용자명은 조직에 맞게 조정하세요.

Q: doctor 녹색인데 무응답? 프로브와 멘션·allowlist.Q: Mac에 사용자 둘? HOME 분리, 쓰기 가능 설정 공유 금지.Q: 업그레이드 후 Gateway만? 포트·좀비 PID·패키지가 덮어쓴 env 파일.

Q: Mac에서 Docker? 가능하나 자격 증명 볼륨·IPC가 복잡합니다. 컨테이너 표준이 없으면 네이티브 감독을 권장합니다.Q: IPv6 전용 VPS? DNS·SAN 정렬. AAAA 오설정이 반개 터널을 만듭니다.Q: 로그 과다? 구조화 JSON을 수집기로. 프로덕션 셸에서 raw tail 지양.

Q: 이중 호스트 페일오버 연습? 스테이징 호스트명으로 프로덕 토큰 전 롤백 두 번.Q: Git에 시크릿? sops 등. 사설도 생키 커밋 금지.

7. 사례: 계층 진단이 MTTR을 줄임

2026년 타임라인은 반복됩니다. 뚜껑 닫힘·호스트 정비 → Gateway 다운 → 사용자가 모델을 몇 시간 만짐. 고정 5단계 사다리가 평균 복구 시간을 줄입니다. 비싼 실수는 거의 항상 운영입니다.

이중 소스 설정은 고스트 성공을 만듭니다. 마지막 쓴 머신이 이길 때까지 정상처럼 보입니다. 부팅 체크섬 있는 GitOps로 즉시 드리프트가 보입니다.

Apple 워크로드가 많으면 Gateway를 원격 Mac에 두면 튜토리얼이 가정하는 FS 권한에 맞춰 샌드박스 놀람이 줄어듭니다. TLS 대규모 종단이 필요하면 엣지에 Linux를 둘 수 있으나 토폴로지는 단순이 강합니다.

장기적으로 런북에 투자한 팀이 승리합니다. 포트·헬스 커맨드·롤백 tarball 경로가 적힌 한 장은 매 장애마다 이자를 냅니다.

보안: 관리 포트 노출을 가정하고 루프백 바인딩, 제어 프록시에서 TLS 종단, 채널 업그레이드와 같은 cadence로 자격 증명 회전.

용량: Gateway CPU는 드물게 병목입니다. 네트워크 정체와 제공자 한도가 깁니다. 채널 프로브 p95를 주간 측정합니다. 스킬 캐시 디스크도 봅니다.

변경 관리: plist·unit 편집은 코드 리뷰입니다. WorkingDirectory 한 줄이 상대 경로를 바꿉니다. reload 전 diff, .bak 타임스탬프 보관.

사람: 주간 온콜을 돌려도 구조 변경은 단일 Gateway 오너가 승인합니다.

8. 마무리: Linux는 입구, Mac은 Apple 네이티브 접착제

(1) 한계: Linux는 Apple 전용 접착이 약하고, Mac은 최저가 raw egress 스토리는 약합니다.(2) 원격 Mac 가치: 창작 스택 동거와 크로스 OS 파일 홉 감소.(3) MACGPU: 예측 가능한 Apple Silicon 노드를 임대하는 선택입니다. CTA에서 공개 요금과 도움말로 이동합니다.

하이브리드도 괜찮습니다. 토큰은 Linux에서, Apple 워크플로는 Mac에서—경계는 rsync나 객체 스토리지로 자동화합니다.

실험이면 수동 헬스 → systemd 또는 launchd → 알림 순입니다. 중간을 건너뛰면 야간 페이지가 붙습니다.

예산 현실: 소규모 팀에선 공수가 TCO를 지배합니다. 모니터링·고정 이미지 원격 Mac이 밤을 태우는 “무료” VPS보다 쌀 수 있습니다. 반대로 팀이 전부 Linux 네이티브면 Mac을 억지로 밀지 마세요.

온보딩: 건강한 프로브 시퀀스를 5분 화면 녹화로 런북 옆에 둡니다.

마지막으로 지루한 주를 축하합니다. 최고의 OpenClaw 함대는 조용합니다.