AI Frontier

2026년, macOS에서 OpenClaw 게이트웨이 종료 코드: OOM 137, SIGTERM 143, launchd 크래시 루프와 Console.app 진단

MacHTML Lab2026.05.09약 31분 읽기

OpenClaw 게이트웨이는 성공 로그로 기억되지만 프로덕션은 종료 코드로 말합니다. 2026년에도 macOS launchd137에 메모리 압박, 143SIGTERM, 빠른 재시작에 plist 문제를 드러냅니다. Console.app과 log show, doctor 상관을 정리합니다.

관련: doctor 진단, LaunchAgent 복구, 메모리 가지치기.

종료 코드 치트시트

코드의미먼저 볼 것
0정상 종료의도적 중지
1일반 오류stderr 경로
137OOM/SIGKILL메모리·도구 출력
143SIGTERMreload/배포

운영 메모(상세)

운영자는 OpenClaw 게이트웨이의 성공 로그를 기억하지만 프로덕션은 종료 코드의 어휘를 가르칩니다. 이천이십육년에도 macOS launchd는 스튜디오 Mac mini든 클라우드 mini든 Node 런타임을 같은 방식으로 감싸고 백삼십칠은 대개 메모리 압박 백사십삼은 정중한 SIGTERM 빠른 재시작은 plist 오류를 뜻합니다.

exit 백삼십칠은 병렬 도구 호출이 각각 거대한 표준 출력을 버퍼할 때 상관이 크고 팔 기가 통합 메모리에서는 동시 도구를 세 개로 줄이고 모델 문맥 창도 Activity Monitor 피크에 맞춰 내립니다.

launchd는 비영 종료 뒤 ThrottleInterval로 백오프를 걸고 KeepAlive가 공격적이면 일 초 미만으로 죽으면 같은 타임스탬프 벽이 서서 첫 진짜 한 줄이 가려집니다. 디버깅 중에는 십 초로 올리고 원인 수정 뒤 프로덕션 값으로 돌립니다.

log show 술어는 subsystem을 com.apple.xpc.launchd로 좁히고 라벨 문자열로 더 좁히며 JSON으로 뽑아 감사에서 grep 가능한 형태로 둡니다. Console.app은 재현 전부터 스트림을 시작하고 크래시 직후 일시정지해 버퍼 손실을 피합니다.

exit 백사십삼은 배포 스크립트 reload나 수동 kill에서 잘 나오고 grace가 십오초라도 도구 호출이 유예를 넘으면 백삼십칠로 승격할 수 있습니다. readyz를 먼저 거짓으로 내려 부하를 멈추는 편이 Node 플래그 조정보다 낫습니다.

KeepAlive의 SuccessfulExit를 잘못 쓰면 건전한 영 종료도 재시작이 돌아 클라우드 Mac CPU 크레딧을 태웁니다. launchctl print gui의 UID와 라벨로 실제 상태를 스크린샷해 변경 관리에 붙입니다.

Linux CI 컨테이너는 통합 메모리 압축과 launchd 수명 주기와 Keychain 프롬프트를 재현하지 않으므로 macOS 스모크가 승격 전 마지막 관문입니다. 대략 일일 십육 점 구 미국 달러 mini가 랩톱 택배보다 저렴하게 차이를 없앱니다.

StandardErrorPath가 가득 차 추가가 안 되면 코드 일로 떨어질 수 있어 private var와 커스텀 로그 디렉터리 여유를 오 기가 이상으로 감시하고 newsyslog식 회전을 운용서에 명시합니다.

포스트모템은 마지막 건전 요청 ID에서 첫 크래시 줄까지 타임라인과 종료 코드와 시그널과 launchd 이유 문자열과 메모리 최댓값과 동시 도구 수와 doctor 출력 해시와 설정 차이와 후속 조치를 맞춥니다.

SIGTERM 뒤 SIGKILL을 십오초에 떨어뜨리는 블루그린은 연결 끊기 drain이 맞지 않으면 백삼십칠을 남기므로 유예 연장이나 도기 부채 축소가 먼저입니다.

Prometheus에 process_start_timestamp_seconds와 process_exit_code와 rss_bytes_max를 항상내면 세 계열만으로 메모리인지 배포인지 설정인지를 가릅니다.

OpenClaw doctor는 포트와 토큰과 디스크 경로를 검증하므로 크래시 직전 출력을 SHA로 고정하고 plist 버전과 세트로 보관합니다.

메모리와 문맥 가지치기는 긴 도구 전사가 무한히 늘 때 주원인이므로 관련 글 방침에 맞춰 JSON 깊이와 첨부 크기를 게이트웨이에서 거부합니다.

launchd의 RunAtLoad 참거짓을 문서화하지 않으면 낮에 수동 unload했다가 몇 분 뒤 자동 reload로 진짜 원인이 숨을 수 있습니다.

도구 stdout이 메가바이트급이면 압축이 시작되기 전에 지연이 먼저 나오므로 징후를 공유 로그에 씁니다.

클라우드 mini는 SSH와 VNC로 로그를 읽는 분산 팀 통화에서도 팬 소음이 방해가 덜하고 릴리스 주말만 상시 켤 수 있습니다.

Console 즐겨찾기를 게이트웨이 종료 전용으로 만들고 subsystem과 메시지 포함을 조합합니다.

sysdiagnose는 파일 시스템이나 kext 의심이 있을 때로 한정하고 보통은 경량 증적이면 충분합니다.

실패 창의 Activity Monitor 샘플은 커스텀 미들웨어의 촘촘한 루프를 보여 stderr에 안 나오는 정체를 드러냅니다.

launchctl kickstart 남용은 상태 경쟁을 늘리므로 운용 절차에서는 unload와 load 순서를 고정합니다.

환경 변수 프로필 전환은 해시 차이를 짧게 남겨 누가 언제 어떤 값을 넣었는지 추적 가능하게 합니다.

TLS와 JWT 시각 어긋남은 다른 글처럼 재시작 루프로 보일 수 있어 NTP와 키체인을 먼저 의심합니다.

마지막으로 종료 코드 고고학은 지루해도 장애 분보다 싸므로 증적 형식을 템플릿화해 반복 비용을 내립니다.

추가 관측으로 게이트웨이가 짧은 시간에 백사십삼을 여러 번 돌려줄 때는 배포 경합보다 로그 로테이션 경합 가능성도 의심하고 파일 디스크립터 한계와 ulimit 실값을 같은 시간 창에서 가져옵니다.

도구 JSON이 너무 깊으면 파싱 전에 메모리가 부풀어 게이트웨이에서 깊이 한계와 배열 길이 한계를 거절 사유와 함께 돌려 클라이언트가 일찍 알게 합니다.

같은 호스트에서 여러 에이전트를 돌리면 로그 파일 잠금 경합이 조용히 지연을 키워 결과적으로 타임아웃으로 종료 코드가 흩어질 수 있어 라벨과 경로를 분리하고 공유 디렉터리 추가를 피합니다.

클라우드 mini에서는 스냅샷 복원과 plist 교체를 짧은 런북으로 고정해 주말 온콜이 헤매지 않게 명령을 그대로 붙여 넣을 형태로 둡니다.

doctor 경고를 무시한 채 프로덕션 트래픽을 되돌리면 재현은 어렵지만 통계만 나빠지는 상태가 됩니다. 경고는 티켓으로 만들고 임계값을 하나씩 없애는 방침을 남깁니다.

ThrottleInterval과 크래시 루프

비영 종료 뒤 ThrottleInterval로 백오프합니다. 디버깅 중에는 십 초로 올립니다.

log show 술어

log show --last 30m --predicate \
  'subsystem == "com.apple.xpc.launchd" AND eventMessage CONTAINS[c] "openclaw"'

Console.app 절차

  1. subsystem과 메시지로 즐겨찾기.
  2. 재현 전 스트림 시작.
  3. 직후 일시정지.

메모리 압박과 도기 부채

137은 병렬 도구 stdout 비대와 상관이 큽니다.

샘플 수집

CPU가 오래 붙으면 Activity Monitor 샘플을 뜹니다.

plist 위생

KeepAliveSuccessfulExit 오설정은 건전 종료도 재시작시킵니다.

Linux CI가 재현 못하는 이유

통합 메모리 압축과 launchd는 Linux에 없습니다.

포스트모템

  • 타임라인, 종료 코드, 이유 문자열
  • 메모리 최댓값, 동시 도구 수
  • doctor 해시, 설정 차이

stderr 로테이션

디스크 가득은 코드 1로 떨어질 수 있습니다.

시그널 운용

grace가 짧으면 SIGKILL137이 됩니다. /readyz로 먼저 차단합니다.

플라이트 레코더

process_exit_coderss_bytes_max를 항시 보냅니다.

FAQ

137은 항상 OOM?

대개지만 그래프로 확인.

143은 배포?

reload에서 흔함.

Mac mini일일 십육 점 구 미국 달러부터 빌려 launchd 행동을 맞출 수 있습니다.

OpenClaw 종료를 macOS에서 재현

클라우드 Mac mini에서 Console과 plist를 확인하세요.

게이트웨이 종료 분석
$16.9/일부터