티스토리 뷰
안녕하세요! 오늘은 리눅스의 시그널(Signal) 개념에 대해 알아보겠습니다!
시그널이란 리눅스 시스템 상에서 외부에 발생한 비동기적인 이벤트를 프로세스에게 알려주는 일종의 소프트웨어적인 인터럽트 역할을 하는 것을 의미합니다!! 프로그램이 실행되면서 floating point error, power failure, alarm clock rings, death of a child process, Ctrl-C, Ctrl-Z와 같은 예상하지 못한 이벤트들이 발생합니다. 시그널은 이런 비동기적인(asynchronous)한 이벤트들을 알려주기 위한 수단입니다!
시그널이 전달되는 방식은 다음과 같습니다.


프로세스에 시그널이 들어올 경우 프로세스는 다음 세가지 방법 중 하나를 선택합니다.
- ignore it : 무시하기
- catch it : 시그널에 적합한 함수 호출하기
- accept the default : default 값을 수행하도록 냅두기
이때, default 값은 다음을 의미합니다!
- Ign - The signal is ignored : 시그널이 무시된다.
- Term - The process is terminated : 프로세스가 종료된다.
- Core - A core dump file is generated, and the process is terminated : 종료하고 core dump 파일 생성한다. (ex .swp)
- Stop - The process is stopped : 프로세스를 중지한다.
- Cont - Execution of the process is resumed : 프로세스 실행을 재개한다.
$man 7 signal을 들어가면 signal 내용을 볼 수 있다.

Linux에 있는 다양한 시그널들 중에 자주 쓰이는 대표적인 시그널을 알아보겠습니다!
- SIGINT : 프로그램 실행 도중 Ctrl+C를 누르면 발생합니다. 키보드로부터 명시적으로 발생시키는 시그널입니다. SIGINT가 발생한 경우 기본적으로 프로세스가 종료됩니다.
- SIGKILL : 프로세스를 강제로 종료시키는 시그널입니다.
- SIGSTOP : 프로그램 실행 도중 Ctrl+Z를 누르면 발생합니다. 터미널에서 입력된 정지 시그널입니다.
- SIGCHILD : 자식 프로세스가 중지되거나 종료되었을 때 부모 프로세스에 전달되는 시그널입니다.
- SIGTERM : 가능한 정상 종료를 시키는 시그널입니다.
- SIGSEGV : 메모리 참조가 잘못되었을 경우 발생합니다.
- SIGQUIT : 프로그램 실행 도중 Ctrl+\을 누르면 발생합니다. 프로세스를 종료시킨 뒤 core dump를 수행합니다.
위의 시그널들 중 핸들링이 안되는 시그널은 SIGKILL과 SIGSTOP이다. 그리고 SIGSTOP로 중지시켰던 프로세스를 SIGCONT로 다시 원상복귀 시키면 터미널에서 제어권이 없어져서 Ctrl+C로 안죽습니다. 이때는 SIGKILL(9)로 죽여야합니다!
이상 시그널 관련 개념에 다뤄봤습니다! 시그널 관련 예제는 다음 포스팅에서 다루겠습니다~
'👩🏻💻개발공부 > 리눅스' 카테고리의 다른 글
| 10. 리눅스 시그널(signal) 예제로 알아보기(2/2) 🖋 (2) | 2022.12.12 |
|---|---|
| 10. 리눅스 시그널(Signal) 예제로 알아보기 (1/2) 🖋 (0) | 2022.12.12 |
| 9. 리눅스 프로세스(Process) 예제로 알아보기 🔍(2/2) (0) | 2022.12.12 |
| 9. 리눅스 프로세스(Process) 예제로 알아보기 🔍(1/2) (0) | 2022.12.11 |
| 9. 리눅스 프로세스(Process) 개념 알아보기🔎 (0) | 2022.12.11 |
- Total
- Today
- Yesterday
- SQL
- 교환학생
- Signal
- 공룡책
- 리눅스
- 자바스크립트
- 혼공단
- 스페인
- AWS
- nodejs
- 깃 예제
- 혼공단 SQL
- 프로젝트
- Process
- 백준
- 혼공
- 개발
- 운영체제
- 프로그래머스
- googleapis
- JavaScript
- Linux
- 해커톤
- 혼공학습단
- C++
- JS
- 스페인 교환학생
- 개발일지
- 혼공단 9기
- MySQL
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 |