← 목록
기타 2026-05-20 3KB 읽기 3분

시스템 안정화 — 프로세스 관리자 충돌 해결

개요

CPU 로드 209까지 치솟아 시스템 크래시. 근본 원인: 5개 독립 프로세스 관리자가 동시에 한선씨 VM을 재시작하면서 중복 인스턴스 폭증.

근본 원인

한선씨(crownyc) VM은 TCP 소켓 기반이지만, 모든 프로세스 관리자가 HTTP 헬스체크를 사용 → 항상 "DOWN" 감지 → 무한 재시작 루프.

충돌하던 5개 관리자

관리자LaunchAgent방식문제
health-monitor.shorg.crowny.health-monitor10분 주기, bashHTTP 체크 → 무한 재시작
crowny-infra watchdogorg.crowny.watchdog10초 주기, Node.jsHTTP 체크 → kill+spawn 루프
crowny-watchdog.shcom.crowny.watchdog5분 주기, bashHTTP 체크 → 블라인드 재시작
crowny-supervisororg.crowny.supervisorKeepAlive, bash시작 시 전체 서비스 기동
watchdog.shorg.crowny.recovery5분 주기, bash3중 장애 해결 루틴

수정 내용

1. health-monitor.sh (/Users/ef/crowny-gateway/scripts/health-monitor.sh)

  • check_service(): 한선씨 타입은 TCP 포트 바인딩 확인으로 변경
  • restart_hanseon(): 기존 프로세스 확인 + 10분 쿨다운 추가
  • restart_node(): 10분 쿨다운 추가
  • check_zombies(): 5개 → 15개 서비스로 확대
  • check_port_conflicts(): 한선씨 VM 제외 (CWD 오탐 방지)

2. watchdog.js (/Users/ef/crowny-infra/lib/watchdog.js)

  • _probe(): crownyc 명령어 포함 서비스는 net.createConnection TCP 프로브 사용
  • net 모듈 import 추가

3. crowny-watchdog.sh (/Users/ef/.claude/scripts/crowny-watchdog.sh)

  • 재시작 전 lsof 포트 확인 + 프로세스 존재 확인 로직 추가

4. 중복 관리자 비활성화

  • com.crowny.watchdog → unload (crowny-watchdog.sh)
  • org.crowny.recovery → unload (watchdog.sh)
  • 남은 관리자: health-monitor.sh (bash, 10분) + watchdog.js (Node, 10초)

결과

항목수정 전수정 후
CPU 로드2093~7
crownyc 프로세스133+10~15
중복 인스턴스solution×5, network×5, project×3 등각 서비스 1개
RAM 낭비~4.7GB0

한선씨 동반파일

  • /Users/ef/crowny-infra/lib/워치독.한선 — watchdog.js 로직 한선씨 구현

관련 파일

  • /Users/ef/crowny-gateway/scripts/health-monitor.sh
  • /Users/ef/crowny-infra/lib/watchdog.js
  • /Users/ef/.claude/scripts/crowny-watchdog.sh
  • ~/Library/LaunchAgents/org.crowny.health-monitor.plist
  • ~/Library/LaunchAgents/org.crowny.watchdog.plist