PART 08. 프로세스와 시그널
스크립트를 작성하다 보면 단순히 명령어를 순서대로 실행하는 것 이상이 필요한 순간이 옵니다. 여러 작업을 동시에 돌리고, 실행 중인 프로세스를 추적하고, 어떤 상황에서도 뒷정리를 확실히 해야 할 때입니다.
이 PART는 리눅스에서 프로세스가 어떻게 동작하는지, 그리고 스크립트가 신호를 받았을 때 어떻게 반응하도록 만드는지를 다룹니다. 프로세스를 확인하고 제어하는 방법을 익힌 뒤, 시그널과 trap을 활용해 예기치 않은 종료 상황에서도 안전하게 마무리되는 스크립트를 작성하는 법을 배웁니다.
이 PART의 내용은 PART 11에서 다룰 "견고한 스크립트 작성"의 직접적인 기반이 됩니다. 프로세스를 통제하고 시그널을 처리할 줄 알면, 예상치 못한 상황에서도 데이터를 지키고 시스템을 안정적으로 유지하는 스크립트를 만들 수 있습니다.
학습 목표
- ps, top, htop으로 실행 중인 프로세스를 파악할 수 있습니다.
- 백그라운드 실행과 작업 제어(jobs, fg, bg)를 활용할 수 있습니다.
- nohup과 disown으로 터미널에 종속되지 않는 프로세스를 실행할 수 있습니다.
- kill, killall, pkill로 프로세스를 안전하게 종료할 수 있습니다.
- 주요 시그널의 의미와 발생 조건을 이해할 수 있습니다.
- trap으로 시그널을 가로채어 사용자 정의 처리를 할 수 있습니다.
- cleanup 패턴과 mktemp를 활용해 임시 파일을 안전하게 관리할 수 있습니다.
- PID 파일로 스크립트 중복 실행을 방지할 수 있습니다.
구성
| 장 | 제목 | 주요 내용 |
|---|---|---|
| 01장 | 프로세스 관리 | ps, top, htop, 백그라운드, 작업 제어, 프로세스 종료 |
| 02장 | 시그널과 trap | 시그널 이해, trap 처리, cleanup 패턴, 임시 파일 관리 |