본문 바로가기
Python

Python - sys.exit(0) 과 sys.exit(1)의 차이 exit code

by 올엠 2024. 3. 25.
반응형

 

OS에서는 해당 프로그램이 HTTP와 유사하게 처리 결과에 따른 오류로 종료되었는지 정상적으로 종료되었는지를 확인하는 Status Code가 있다. 이를 Exit Code라고 하면 1과 0으로 구분된다.

  • exit 0

EXIT_SUCCESS, 작업 성공

  • exit 1

EXIT_FAILURE, 작업 실패

exit 1로 종료를 하게 되면, 시스템에 존재하는 Error Handler가 동작하게 된다.

프로그램 적으로 보면 Try/Catch 처럼 Catch로 보내게 된다.

Python에서도 만약 import sys를 이용해서 종료를 할 수 있는데 이때 코드를 지정하여 종료가 가능하다.

만약 아래와 같이 1로 프로그램을 종료하게 되면, 오류로 인식하여 Error Handler가 동작한다. 다만 시스템 레벨이기 때문에 파이썬의 try / except로는 잡을 수 없다.

import sys

sys.exit(1)

이를 이용하여 가장 심플하고 간단하게 현재 프로그램이 정상인지 비정상 종료인지 알릴 수 있다.

그리고 Shell 상태에서는 $?에 값이 저장되어 있으므로 아래처럼 프로그램이 남긴 상태값 1이 종료한 이후에 echo로 확인해보면  $?에 1이 저장되어 있는것을 알 수 있다. 

이를 이용해서 이전 실행 프로그램의 비정상 유무 확인이 쉘 스크립트 등에서 가능하다.


 $?는 마지막 값만 저장되어 있다는 점을 이해하기 바란다.

반응형