반응형
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이 저장되어 있는것을 알 수 있다.
이를 이용해서 이전 실행 프로그램의 비정상 유무 확인이 쉘 스크립트 등에서 가능하다.
단 $?는 마지막 값만 저장되어 있다는 점을 이해하기 바란다.
반응형
'Python' 카테고리의 다른 글
Python - Class, self 메모리 할당과 관리 Reference counting (0) | 2024.03.25 |
---|---|
Python - List 에서 문자열 포함 유무를 확인 (0) | 2024.03.25 |
Python - Zombie Process 처리 timeout (0) | 2024.03.25 |
Python - asyncio 코루틴 await 이해하기 (0) | 2024.03.25 |
Django 4.x 주요 기능 정리(4.0, 4.1, 4.2) (0) | 2024.03.25 |