문제점: restart가 거짓처럼 느껴질 때
문제 1: 설정은 새 스키마로 쓰였지만 감독 바이너리는 구버전입니다. meta.lastTouchedVersion이 앞서 있으면 구 CLI는 서비스 변경을 멈추는 것이 정상 동작에 가깝습니다.
문제 2: Homebrew, npm -g, 수동 심볼릭 링크가 공존하면 터미널의 which openclaw와 launchd plist의 PATH가 갈라집니다.
문제 3: gateway status --deep가 과거 실험으로 남은 게이트웨이 유사 서비스를 나열합니다. 방치하면 doctor와 install이 충돌합니다.
문제 4: 버전과 PATH를 맞추기 전 pairing만 반복하면 정체성 문제만 쫓게 됩니다.
문제 5: gateway.remote.url이 폐기 호스트를 가리키면 증상은 비슷하지만 원인은 전송층입니다. 먼저 which -a로 가설을 나눕니다.
계층: 구 바이너리 거부 vs 실제 손상
L0 openclaw --version과 gateway status 요약을 같은 티켓에 붙입니다.
L1 meta.lastTouchedVersion과 CLI 메이저를 비교하고, 스탬프가 더 새면 구 바이너리에서의 서비스 변경을 중단합니다.
L2 openclaw gateway status --deep로 시스템 레벨 유닛과 추가 launchd 라벨을 기록합니다.
L3 PATH를 맞춘 뒤 openclaw doctor를 실행합니다. doctor --fix는 4.14 맥락을 읽은 후에만.
L4 RPC가 초록일 때만 channels status --probe입니다. 침묵은 채널 글과 Telegram 초기화로 이동합니다.
티켓 최소 증거 패키지
두 버전 문자열, Config(cli)와 Config(service) 경로, meta.lastTouchedVersion, which -a openclaw, 유닛 이름, deep 발췌를 고정합니다. 업그레이드 창에서는 매시간 델타를 남겨 PATH 드리프트인지 중복 유닛인지 구분하기 쉽습니다.
원격 Mac에서 아티팩트 전송과 게이트웨이를 동시에 돌리면 CPU와 디스크 I/O 스냅샷을 첨부해 RPC 실패와 리소스 기아를 혼동하지 마세요. 2단계 CI 글의 리소스 절과 교차 검증할 수 있습니다.
의사결정 매트릭스
| 서명 | 의미 | 첫 조치 | 피할 것 |
|---|---|---|---|
| 서비스 변경 거부 | lastTouchedVersion이 CLI보다 최신 | PATH를 새 dist로→install --force | 구 바이너리에서 --fix |
| deep가 중복 나열 | 오래된 plist/systemd | 공식 힌트로 여분 비활성 | 두 launchd 병행 |
| Config 경로만 다름 | HOME 드리프트 | EnvironmentFile과 셸 정렬 | JSON만 수동 편집 |
| RPC 실패+URL 이상 | remote 오연결 | remote 문서로 | split-brain 중 pairing 리셋 |
7단계: 단일 진실로 수렴
gateway status와--deep을 마스킹해 고정합니다.which -a openclaw와 심볼릭 링크 목적지를 나열합니다.- 셸과 감독 프로세스의
PATH를 동일 접두로 맞추고 필요 시 plist에 절대 경로를 씁니다. - 버전이 일치한 뒤 서비스 변경을 시도합니다.
openclaw gateway install --force후 콜드 재시작합니다.- doctor로 블로커를 제로로 만들고 요약을 티켓에 붙입니다.
- RPC 지연과 성공한 UI 조작을 다음 업그레이드 기준선으로 남깁니다.
수집 예
which -a openclaw
openclaw --version
openclaw gateway status --deep
openclaw doctor심화: 관측, 책임, 훈련
(1) 2026년 운영에서는 meta.lastTouchedVersion과 이중 Config 표시가 한 티켓에 섞이기 쉽습니다. 먼저 변수를 고정하고 which -a 출력과 plist의 PATH를 나란히 붙여 바이너리 거부인지 HOME 드리프트인지 나눕니다. 노트북 절전으로 SSH가 끊기면 채널 침묵을 split-brain으로 오판하지 마세요.
(2) 분기마다 PATH 앞에 오래된 래퍼를 잠시 넣는 훈련을 하여 모니터링이 잘못된 해석을 잡는지 확인합니다. 스테이징 Mac에 중복 plist를 심어 deep이 둘 다 나열하는지, 정본 라벨을 런북에 적었는지 검증합니다.
(3) install --force 실패 시 롤백 tarball과 복구 소요 시간을 문서화합니다. split-brain은 심리 부담이 커서 리허설된 롤백이 평균 복구 시간을 줄입니다.
(4) 야간 작업으로 비대화 셸에서 해석된 openclaw 경로와 plist에 박힌 경로를 비교해 분기만으로 알람을 올립니다. RPC가 초록인데도 부분 장애가 이어지는 패턴을 드러냅니다.
(5) 본문 절차는 동일 호스트 바이너리 어긋남에 효과적이며 공급자 장애나 모델 429는 범위 밖입니다. 필기 운영 비용이 지배적이면 상시 가동 원격 Mac을 관리형 입구로 임대하는 선택이 총소유비용을 낮출 수 있습니다. 토큰 정책과 런북은 자사에 남기고 하드웨어와 관측 기본값을 앞당깁니다.
관련 읽기
remote: remote 매트릭스. pairing: 런북. install: 상주.
노트북 수면과 다중 설치가 변수를 키우면 단일 감독자와 파일 동거를 동시에 만족하는 원격 Mac 임대가 현실적인 다음 수가 됩니다.
FAQ
재설치만으로 충분한가요?
PATH와 중복 유닛을 정리하지 않으면 재설치도 옛 입구에 다시 묶입니다.
Docker와 베어메탈 병행은?
감독 패턴은 하나로 줄이고 deep이 단일 경로를 보일 때까지 정리합니다.
SFTPMAC을 고르는 이유
단일 바이너리 진실, 안정적인 입구, 아티팩트 워크플로와의 동거 관측을 앞당기면서 토큰과 런북은 고객 측에 남길 수 있습니다.
