Computer Security

#37 기본 시그널 처리 1 본문

리눅스 시스템 프로그래밍

#37 기본 시그널 처리 1

쿠리 Kuri 2022. 10. 12. 18:30
반응형

시그널

 

정의 

- 비동기 이벤트를 처리하기 위한 메커니즘

- 소프트웨어 인터럽트

 

 

쓰이는 곳

- Ctrl + C

- Child process termination

- Alarm

- divide by zero

- Inter-process communication

- ...

 

 

정보

- 시그널 번호 + 추가적인 정보 + (아주 작은) 사용자 정의 데이터

 

 

 

 

 

 


시그널의 처리

 

무시

- 아무런 동작도 하지 않음

- SIGKILL, SIGSTOP은 무시 불가능

 

 

 

처리

- 시그널 별 처리 함수를 수행

 

 

 

기본 동작

-시그널 종류 별 기본 동작 수행

    - 프로세스 종료

    - 코어덤프 생성 후 종료

    - 무시

    - 정지

 

 

 

 

 

 


주요 시그널 번호

시그널 번호 기본 동작 의미
SIGHUP 종료 프로세스의 제어 터미널 닫힘(사용자 로그아웃), 설정 리로드
SIGINT 종료 사용자가 Ctrl + C 발생
SIGKILL 종료 붙잡을 수 없는 프로세스 종료
SIGSEGV 코어 덤프 메모리 접근 위반
SIGALARM 종료 알람 발생
SIGTERM 종료 붙잡을 수 있는 프로세스 종료
SIGUSR1/2 종료 사용자 정의 시그널
SIGCHLD 종료 자식 프로세스 종료
SIGCONT 진행 프로세스를 정지했다가 계속 수행함
SIGSTOP 정지 프로세스 실행 보류
 
 
 
 
 

 시그널의 실행과 상속

 

- fork() -> 자식 프로세스는 부모 프로세스의 시그널 동작을 상속 받는다.

- exec() -> 부모 프로세스가 붙잡아 처리하는 시그널은 기본 동작으로 변경된다.

 

시그널 동작 fork() 수행 후 exec() 수행 후
무시 상속됨 상속됨
기본 동작 상속됨 상속됨
붙잡아 처리 상속됨 상속되지 않음(기본 동작 처리)
대기 중인 시그널 상속되지 않음 상속됨
 

 

반응형
Comments