일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- wargame
- 컴퓨터구조
- 시그널
- 시스템
- 취약점
- 프로그래밍
- radare2
- 시스템 프로그래밍
- 드론
- pwncollege
- 리눅스 커널
- C언어
- 워게임
- 커널
- Pwnable.kr
- write up
- pwn.college
- 리눅스커널
- 시스템프로그래밍
- C++
- Leviathan
- 리버싱
- Bandit
- 시스템해킹
- 어셈블리어
- css
- 리눅스
- kernel
- 알고리즘
- px4
Archives
- Today
- Total
Computer Security
#37 기본 시그널 처리 1 본문
반응형
시그널
정의
- 비동기 이벤트를 처리하기 위한 메커니즘
- 소프트웨어 인터럽트
쓰이는 곳
- 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() 수행 후 |
무시 | 상속됨 | 상속됨 |
기본 동작 | 상속됨 | 상속됨 |
붙잡아 처리 | 상속됨 | 상속되지 않음(기본 동작 처리) |
대기 중인 시그널 | 상속되지 않음 | 상속됨 |
반응형
'리눅스 시스템 프로그래밍' 카테고리의 다른 글
#39 기본 시그널 처리 (실습) (0) | 2022.10.14 |
---|---|
#38 기본 시그널 처리 2 (0) | 2022.10.13 |
#36 쓰레드 개념, 쓰레드 생성/종료/조인/동기화 (실습2) (2) | 2022.10.11 |
#35 쓰레드 개념, 쓰레드 생성/종료/조인/동기화 (실습1) (0) | 2022.10.10 |
#34 쓰레드 개념, 쓰레드 생성/종료/조인/동기화 (0) | 2022.10.09 |
Comments