반응형
1/ 시그널(Singnal)이란?
특정 이벤트가 발생하였을 경우 프로세스에 전달되는 신호(Signal)
- 오류 발생, 자식 프로세스의 종료, 사용자의 종료 요청 등
- 굉장히 작은 값
- 인터럽트(Interrupt)라고도 함
- 용도가 제한적이며 중복 시그널에 따른 원치 않는 결과가 발생하기도 함
2/ 시그널을 확인하는 방법
$> kill -l
$> man 7 signal
$> cat /usr/include/asm/signal.h
번호 | 이름 | 설명 | 기본 처리 |
1 | SIGHUP (HUP) |
HangUP의 약어로 로그아웃과 같은 터미널에서 접속이 끊겼을 때 보내지는 시그널입니다. 데몬 관련 환경 설정 파일을 변경시키고 변화된 내용을 적용하기 위해 재시작할 때 이 시그널이 사용됩니다. |
종료 |
2 | SIGINT (INT) |
키보드로부터 오는 인터럽트 시그널로 실행을 중지. [CTRL] + [c] 입력 시에 보내지는 시그널입니다. | 종료 |
3 | SIGQUIT (QUIT) |
키보드로부터 오는 실행 중지 시그널. [CTRL] + [\] 입력 시에 보내지는 시그널입니다. 기본적으로 프로세스를 종료시킨 뒤 코어를 덤프하는 역할을 합니다. |
코어 덤프 |
4 | SIGILL (ILL) |
illegal instruction의 약자입니다. 잘못된 명령을 사용했을 때 발생합니다. | 코어 덤프 |
5 | SIGTRAP (TRAP) |
trace(추적). breakpoint(중지점)에서 TRAP 발생할 때 | 코어 덤프 |
6 | SIGABRT (ABRT) |
abort의 약자로 비정상종료 함수에 의해 발생합니다. (즉, abort 시스템 호출을 하였을 때 발생) | 코어 덤프 |
7 | SIGBUS | 메모리 접근 에러 시 발생하는 시그널입니다. | 코어 덤프 |
9 | SIGKILL (KILL) |
KILL! 무조건 종료, 즉 프로세스를 강제로 종료 시키는 시그널! | 종료 |
11 | SIGSEGV | invalid memory reference | 종료 + 코어 덤프 |
15 | SIGTERM (TERM) |
Terminate의 약자로 가능한 정상 종료 시키는 시그널로 kill 명령의 기본 시그널입니다. | 종료 |
17 | SIGCHLD (child) |
자식 프로세스가 stop 되거나 종료되었을 때 부모에게 전달되는 신호입니다. | 무시 |
18 | SIGCONT (CONT) |
Continue의 약자로 STOP 시그널에 의해 정지된 프로세스를 다시 실행시킬 때 사용됩니다. | 재시작 |
19 | SIGSTOP (STOP) |
터미널에서 입력된 정지 시그널입니다. SIGCONT로 재실행시킬 수 있습니다. | 중지 |
20 | SIGTSTP (TSTP) |
실행 정지 후 다시 실행을 계속하기 위해 대기시키는 시그널입니다. [CTRL] + [z]를 입력했을 때 보내지는 시그널입니다. SIGCONT로 역시 다시 실행시킬 수 있습니다. |
중지 |
29 | SIGIO | 비동기 입출력이 발생했을 경우! (I/O now possible!) | 종료 |
3/ SIGNAL HANDLER
특정 시그널을 감지했을 때 처리되는 별도의 함수
- 특정 시그널 감지
- 현재 작업 일시 중단
- SIGNAL HANDLER 실행
- SIGNAL HANDLER 완료
- 중단된 작업 재개
반응형
'개발 창고 > Server' 카테고리의 다른 글
[Linux] How to set up samba (1) | 2023.11.11 |
---|---|
[Linux] How to run in the background and foreground (0) | 2023.11.10 |
[Linux] How to use "ss" command (0) | 2023.11.09 |
[Linux] How to use "arp" command (2) | 2023.11.09 |
[Linux] How to check account information (0) | 2023.11.08 |