iBetter Books
수정

02장. 시그널과 trap

스크립트를 실행하는 도중 누군가 Ctrl+C를 누릅니다. 또는 서버 관리자가 시스템을 재시작합니다. 이런 상황에서 스크립트는 어떻게 되어야 할까요? 그냥 죽어버리면 임시 파일이 남거나, 작업 파일이 절반만 수정된 채 방치될 수 있습니다.

시그널은 프로세스에 보내는 비동기 알림입니다. Ctrl+C가 보내는 SIGINT, 정상 종료 요청인 SIGTERM, 강제 종료인 SIGKILL이 모두 시그널입니다. 그리고 trap은 이 시그널을 가로채는 장치입니다. trap을 활용하면 어떤 상황에서 스크립트가 종료되더라도 뒷정리를 보장할 수 있습니다.

학습 목표

  • 주요 시그널의 의미와 발생 시점을 설명할 수 있습니다.
  • trap으로 시그널을 가로채어 사용자 정의 처리를 할 수 있습니다.
  • EXIT, ERR, INT, TERM을 함께 trap하는 패턴을 작성할 수 있습니다.
  • mktemp로 안전하게 임시 파일을 생성하고 cleanup으로 삭제를 보장할 수 있습니다.
  • PID 파일로 스크립트 중복 실행을 방지하는 패턴을 구현할 수 있습니다.

구성

제목 주요 내용
01 시그널 이해하기 시그널 목록, 주요 시그널, 처리 가능/불가능
02 trap으로 시그널 처리 trap 구문, 시그널 무시, EXIT 활용
03 클린업 패턴 cleanup 함수, mktemp, PID 파일, 다중 클린업
04 실습: 안전한 임시 파일 관리 종합 실습, safe_processor.sh 전체 코드