Signal은 Unix/Linux에서 커널이나 프로세스가 다른 프로세스에게 비동기적인 사건을 알려주거나 시간을 동기화 시키기 위해 사용한다. signal을 받은 프로세스는 보통 3가지 작업을 할 수 있다. 프로세스를 종료하거나 signal 무시, 받은 signal에 따른 적절한 행동이 그 3가지이다.
필자가 리눅스에서 C로 개발하면 처음 접한 signal은 SIGSEGV(11)이다. SIGSEGV은 잘못된 메모리 관리 때문에 생기는 신호로써, sprintf함수를 이용하여 서식 문자를 만들다가 int형을 %s로 서식을 지정하여 발생하였었다.
아래는 signal 리스트이다.
Signal Name |
Number |
Description |
SIGHUP |
1 |
Hangup (POSIX) |
SIGINT |
2 |
Terminal interrupt (ANSI) |
SIGQUIT |
3 |
Terminal quit (POSIX) |
SIGILL |
4 |
Illegal instruction (ANSI) |
SIGTRAP |
5 |
Trace trap (POSIX) |
SIGIOT |
6 |
IOT Trap (4.2 BSD) |
SIGBUS |
7 |
BUS error (4.2 BSD) |
SIGFPE |
8 |
Floating point exception (ANSI) |
SIGKILL |
9 |
Kill(can't be caught or ignored) (POSIX) |
SIGUSR1 |
10 |
User defined signal 1 (POSIX) |
SIGSEGV |
11 |
Invalid memory segment access (ANSI) |
SIGUSR2 |
12 |
User defined signal 2 (POSIX) |
SIGPIPE |
13 |
Write on a pipe with no reader, Broken pipe (POSIX) |
SIGALRM |
14 |
Alarm clock (POSIX) |
SIGTERM |
15 |
Termination (ANSI) |
SIGSTKFLT |
16 |
Stack fault |
SIGCHLD |
17 |
Child process has stopped or exited, changed (POSIX) |
SIGCONT |
18 |
Continue executing, if stopped (POSIX) |
SIGSTOP |
19 |
Stop executing(can't be caught or ignored) (POSIX) |
SIGTSTP |
20 |
Terminal stop signal (POSIX) |
SIGTTIN |
21 |
Background process trying to read, from TTY (POSIX) |
SIGTTOU |
22 |
Background process trying to write, to TTY (POSIX) |
SIGURG |
23 |
Urgent condition on socket (4.2 BSD) |
SIGXCPU |
24 |
CPU limit exceeded (4.2 BSD) |
SIGXFSZ |
25 |
File size limit exceeded (4.2 BSD) |
SIGVTALRM |
26 |
Virtual alarm clock (4.2 BSD) |
SIGPROF |
27 |
Profiling alarm clock (4.2 BSD) |
SIGWINCH |
28 |
Window size change (4.3 BSD, Sun) |
SIGIO |
29 |
I/O now possible (4.2 BSD) |
SIGPWR |
30 |
Power failure restart (System V) |
'Linux > 유용한 정보' 카테고리의 다른 글
[리눅스] ssh 접속 포트 변경으로 보안 강화 (0) | 2016.05.22 |
---|---|
[리눅스] Fedora(페도라) 다운로드 미러 사이트 (0) | 2016.05.18 |
[리눅스] Ubuntu(우분투) 다운로드 미러 사이트 (2) | 2016.05.16 |
[리눅스] CentOS 다운로드 미러 사이트 (0) | 2016.05.13 |
[리눅스] root 계정 FTP 530 Permission denied (0) | 2016.04.27 |
[리눅스] 배포판 종류별 타임라인 (0) | 2016.03.14 |
[Linux] vi, vim 명령어 및 이동 단축키 모음 (0) | 2016.02.28 |