도구스개발

리눅스 종료 코드(Exit Code) 사전

리눅스·bash 종료 코드를 넣으면 의미를 알려줍니다. 128+N 규칙으로 137(SIGKILL)·139(SIGSEGV) 같은 시그널 종료 코드를 해석합니다.

코드 137 = 128 + 9

SIGKILL (시그널 9)

시그널 번호9
시그널 이름SIGKILL
의미강제 종료 — 잡거나 무시할 수 없음. OOM(메모리 초과)으로 커널이 죽인 경우가 흔함
128을 넘는 코드는 대개 128+시그널 번호입니다. 137(=128+9)은 SIGKILL — Docker·서버가 메모리 한도를 초과해 OOM 킬러에 강제 종료됐을 때 가장 흔히 봅니다. 139(=128+11)는 SIGSEGV(세그멘테이션 폴트)로, 대개 프로그램 자체의 버그를 가리킵니다.

고정 의미 종료 코드

0 — 성공정상 종료했습니다.
1 — 일반 오류각 프로그램이 자유롭게 정하는 일반적인 실패(catchall)입니다.
2 — 셸 빌트인 오용셸 빌트인 명령을 잘못 사용했습니다(예: 잘못된 옵션).
126 — 실행 권한 없음명령을 찾았지만 실행 권한이 없거나 실행할 수 없습니다.
127 — 명령 없음명령을 찾을 수 없습니다(PATH에 없거나 오타).

시그널 목록 (128+N)

코드시그널의미
129SIGHUP터미널 연결 끊김
130SIGINTCtrl+C로 인터럽트
131SIGQUITCtrl+\로 종료(코어 덤프)
132SIGILL잘못된 명령어
133SIGTRAP디버거 트랩
134SIGABRTabort() 호출
135SIGBUS버스 오류(정렬 안 된 메모리 접근 등)
136SIGFPE부동소수점 예외(0으로 나누기 등)
137SIGKILL강제 종료 — 잡거나 무시할 수 없음. OOM(메모리 초과)으로 커널이 죽인 경우가 흔함
138SIGUSR1사용자 정의 시그널 1
139SIGSEGV세그멘테이션 폴트(잘못된 메모리 접근)
140SIGUSR2사용자 정의 시그널 2
141SIGPIPE읽는 쪽이 닫힌 파이프에 쓰기
142SIGALRMalarm() 타이머 만료
143SIGTERM정상 종료 요청(기본 kill 신호). Docker stop의 기본 신호
144SIGSTKFLT코프로세서 스택 오류(거의 안 씀)
145SIGCHLD자식 프로세스 상태 변경
146SIGCONT멈춘 프로세스 재개
147SIGSTOP강제 일시정지 — 잡거나 무시할 수 없음
148SIGTSTPCtrl+Z로 일시정지
149SIGTTIN백그라운드 프로세스의 터미널 입력 시도
150SIGTTOU백그라운드 프로세스의 터미널 출력 시도
151SIGURG소켓의 긴급 데이터
152SIGXCPUCPU 시간 한도 초과
153SIGXFSZ파일 크기 한도 초과
154SIGVTALRM가상 타이머 만료
155SIGPROF프로파일링 타이머 만료
156SIGWINCH터미널 창 크기 변경
157SIGIOI/O 가능 상태
158SIGPWR전원 이상
159SIGSYS잘못된 시스템 콜
이 관례는 bash 매뉴얼 「EXIT STATUS」절을 따릅니다. 시그널 이름·번호(1~31)는 리눅스 x86/x86_64 표준이며, 32번 이후 실시간 시그널은 아키텍처마다 달라질 수 있어 다루지 않습니다. 일부 프로그램은 이 관례를 정확히 따르지 않을 수 있습니다.

사용 방법

  1. 1확인하려는 종료 코드(0~255)를 입력합니다.
  2. 2고정된 의미가 있는 코드(0·1·2·126·127)인지, 128+시그널 번호인지 확인합니다.
  3. 3아래 전체 표에서 시그널 목록을 함께 참고합니다.

자주 묻는 질문

프로세스가 시그널 N번 때문에 죽으면 셸은 종료 코드를 128+N으로 보고합니다. 128을 뺀 값이 시그널 번호입니다. 예를 들어 137은 128+9라 시그널 9번(SIGKILL)에 의한 강제 종료입니다.

137(=SIGKILL)은 Docker 컨테이너나 리눅스 서버가 메모리 한도를 초과해 커널의 OOM(Out Of Memory) 킬러가 프로세스를 강제 종료했을 때 가장 흔하게 나타납니다. 컨테이너 메모리 제한을 늘리거나 메모리 누수를 점검해야 하는 신호입니다.

139(=128+11)는 시그널 11번(SIGSEGV, 세그멘테이션 폴트)에 의한 종료입니다. 프로그램이 잘못된 메모리 주소에 접근했다는 뜻으로, 대개 프로그램 자체의 버그(널 포인터 역참조 등)를 가리킵니다.

127은 명령 자체를 찾지 못한 경우(PATH에 없거나 오타)이고, 126은 명령은 찾았지만 실행 권한이 없어 실행하지 못한 경우입니다.

전송되지 않습니다. 계산은 모두 브라우저 안에서 이루어지고 넣은 값은 이 기기에만 남습니다.

알아두면 좋은 점

  • 0·1·2·126·127·128+N 관례는 bash 매뉴얼 「EXIT STATUS」절(gnu.org 공식 문서)을 1차 출처로 확인했습니다(2026-09-05). 시그널 이름·번호(1~31)는 리눅스 x86/x86_64 표준(POSIX 시그널)을 따릅니다.
  • 32번 이후 실시간 시그널(real-time signal)은 아키텍처마다 번호가 달라질 수 있어 다루지 않습니다.
  • 일부 셸·프로그램은 이 관례를 정확히 따르지 않고 자체적으로 종료 코드를 정의하기도 합니다. 특정 프로그램의 종료 코드는 그 프로그램의 문서를 함께 확인하는 것이 정확합니다.

함께 보면 좋은 도구

마지막 검증: 2026년 9월 5일 · 결과는 참고용 추정치입니다.