환경
- OS: Rocky Linux 8 (RHEL 8 계열)
- Node.js: v20.20.0
- Claude Code: v2.1.37
- 접속 방식: SSH (Termius, macOS Terminal)
증상
Claude Code를 실행하면 Welcome 화면이 정상적으로 렌더링된 후, 아무 입력도 하기 전에 1초 이내로 즉시 종료된다. exit code는 0으로, 크래시가 아닌 정상 종료로 처리된다.
[root@localhost opt]# claude
╭─── Claude Code v2.1.37 ───────────────────────╮
│ Welcome back! │
│ Opus 4.6 · Claude Max │
╰────────────────────────────────────────────────╯
❯ Try "fix lint errors"
[root@localhost opt]# ← 아무것도 안 했는데 바로 종료
/login 화면까지 표시되지만, 선택지를 누를 틈도 없이 꺼지기 때문에 로그인 자체가 불가능한 상황이었다.
시행착오
1. 디스크 용량 부족 의심
처음에는 / 파티션이 100%로 가득 차 있었다. Docker 이미지와 로그가 원인이었고, dnf clean all, npm cache clean --force, journalctl --vacuum-size=100M 등으로 5.7GB를 확보했다. 하지만 용량 확보 후에도 동일한 증상이 계속됐다.
2. 터미널 호환성 의심
SSH 클라이언트(Termius)가 보내는 focus event(^[[I)가 TUI를 죽이는 것으로 의심했다. printf '\\e[?1004l'로 focus reporting을 비활성화하거나, script, expect 등으로 우회를 시도했지만 해결되지 않았다. macOS 기본 터미널에서 SSH 접속해도 동일하게 종료되어 터미널 문제가 아님을 확인했다.
3. 인증 문제 의심
설정 초기화(rm -rf ~/.claude) 후 "Not logged in" 상태가 되면서 인증 문제로 방향을 잡았다. macOS Keychain에 저장된 OAuth 토큰은 파일 복사로 이전할 수 없었고, headless 서버에서는 브라우저 기반 OAuth 로그인 자체가 어려웠다. 하지만 원래 로그인된 상태에서도 꺼졌기 때문에 인증이 근본 원인은 아니었다.
4. strace로 원인 추적
strace로 프로세스를 추적한 결과, read(0, "", 4096) = 0이 확인됐다. stdin이 EOF를 받아서 종료되는 것이었다. 모든 프로세스가 exit code 0으로 정상 종료되고 있었고, 크래시가 아니라 TUI 스스로 종료하는 동작이었다.
5. 다운그레이드 시도
GitHub에서 동일한 이슈(#12084)를 발견했다. RHEL8에서 v2.0.43부터 발생하는 알려진 버그로, v2.0.42로 다운그레이드하면 동작한다는 내용이었다. 다운그레이드 후 실행은 됐지만, 근본 원인은 따로 있었다.
원인
Git 저장소가 아닌 디렉토리에서 Claude Code를 실행하면 TUI가 즉시 종료된다.
Claude Code는 시작 시 git 정보(브랜치, 변경사항 등)를 수집하는데, git repo가 아닌 디렉토리에서 이 과정이 실패할 때 RHEL8/Rocky Linux 환경에서는 예외 처리가 제대로 되지 않아 TUI 이벤트 루프가 깨지고 종료된다.
나는 /opt 디렉토리에서 실행하고 있었는데, 이 디렉토리는 git 저장소가 아니었다.
해결
# 방법 1: 해당 디렉토리에서 git init
cd /opt
git init
# 방법 2: 기존 git 프로젝트 디렉토리에서 실행
cd /opt/your-project # git repo가 있는 경로
claude
git 저장소 안에서 실행하면 최신 버전에서도 정상 동작한다. 애초에 코딩 도구이니 프로젝트 디렉토리에서 실행하는 게 자연스럽긴 하지만, git repo가 아닌 곳에서 실행했을 때 아무 에러 메시지 없이 종료되는 건 명확한 버그다.
참고
- GitHub Issue: #12084 - Claude Code 2.0.43+ exits immediately after rendering welcome screen on RHEL8
- 영향 버전: v2.0.43 이상
- 영향 OS: RHEL 8, Rocky Linux 8 (다른 Linux 배포판에서는 미확인)
'AI > Claude code' 카테고리의 다른 글
| Claude 2월 업데이트 정리 (0) | 2026.03.06 |
|---|---|
| [Claude Code] Claude Remote Control (0) | 2026.02.25 |
| [Claude code]6.CLAUDE.md (1) | 2025.09.23 |
| [Claude code]5. 고양이 웹 페이지 만들고 공개하기 (0) | 2025.09.21 |
| [Claude code]4. 넘겨받은 디렉터리 분석 및 조치 (0) | 2025.09.21 |