Scroll to navigation

SIGNAL(7) 리눅스 프로그래머 매뉴얼 SIGNAL(7)

이름

signal - 존재하는 시그널의 목록

설명

리눅스는 아래 나열된 시그널을 지원한다. 몇몇 개의 시그널 번호는 아키텍쳐 의존적이다. 먼저 POSIX.1에서 설명하는 시그널이다.

시그널 번호 행동 설명
SIGHUP  1 A 제어 터미널이 멈추거나 제어 프로세스가 죽음
SIGINT  2 A 키보드로부터의 인터럽트(interrupt) 시그널
SIGQUIT  3 C 키보드로부터의 종료(quit) 시그널
SIGILL  4 C 잘못된 명령어(Illegal Instruction)
SIGABRT  6 C abort(3)로부터의 중단(abort) 시그널
SIGFPE  8 C 부동 소수점 예외(exception)
SIGKILL  9 AEF kill 시그널
SIGSEGV 11 C 잘못된 메모리 참조
SIGPIPE 13 A 깨진 파이프: 수신자가 없는 파이프에 쓰기
SIGALRM 14 A alarm(2)으로부터의 타이머 시그널
SIGTERM 15 A 종료(termination) 시그널
SIGUSR1 30,10,16 A 사용자 정의 시그널 1
SIGUSR2 31,12,17 A 사용자 정의 시그널 2
SIGCHLD 20,17,18 B 자식 프로세스가 중단 또는 종료
SIGCONT 19,18,25 중단되었다면 재개(continue)
SIGSTOP 17,19,23 DEF 프로세스 중단
SIGTSTP 18,20,24 D 터미널에서의 중단 시그널
SIGTTIN 21,21,26 D 백그라운드 프로세스에 대한 터미널 입력
SIGTTOU 22,22,27 D 백그라운드 프로세스에 대한 터미널 출력

다음은 POSIX.1의 시그널은 아니지만 SUSv2에서 설명하고 있는 것이다.

시그널 번호 행동 설명
SIGBUS 10,7,10 C 버스 에러 (잘못된 메모리 접근)
SIGPOLL A 폴링(poll) 이벤트 (Sys V). SIGIO와 같다.
SIGPROF 27,27,29 A 프로파일링(profiling) 타이머 시그널
SIGSYS 12,-,12 C 루틴에 잘못된 인자 (SVID)
SIGTRAP 5 C trace/breakpoint 트랩
SIGURG 16,23,21 B 소켓에 대한 긴급(urgent) 상황 (4.2 BSD)
SIGVTALRM 26,26,28 가상 알람 클럭 (4.2 BSD)
SIGXCPU 24,24,30 C CPU 시간 제한 초과 (4.2 BSD)
SIGXFSZ 25,25,31 C 파일 크기 제한 초과 (4.2 BSD)

(SIGSYS, SIGXCPU, SIGXFSZ와 몇몇 아키텍쳐에서는 SIGBUS의 기본 행동은 SUSv2에서 C(종료와 코어 덤프)로 나와있지만 현재 리눅스(2.3.27)에서 까지는 A(종료)이다)

다음은 여러 가지 다른 시그널.

시그널 번호 행동 설명
SIGIOT 6 C IOT 트랩. SIGABRT와 같다.
SIGEMT 7,-,7
SIGSTKFLT -,16,- 보조프로세서의 스택 오류
SIGIO 23,29,22 A 현재 I/O가 가능 (4.2 BSD)
SIGCLD -,-,18 SIGCHLD와 같다.
SIGPWR 29,30,19 A 전원 문제 (System V)
SIGINFO 29,-,- SIGPWR와 같다.
SIGLOST -,-,- A 파일 락(lock) 손실
SIGWINCH 28,28,20 B 윈도우 크기 변경 시그널 (4.3 BSD, Sun)
SIGUNUSED -,31,- A 사용되지 않는 시그널 (SIGSYS가될 것이다)

(여기서 -는 시그널이 없음을 나타낸다; 세 가지 값이 있다. 첫번째 것은 대개 alpha와 sparc에서, 중간의 것은 i386, ppc와 sh에서, 마지막 것은 mips에서 유효한 값이다. 29번 시그널은 alpha에서는 SIGINFO / SIGPWR이지만 sparc에서는 SIGLOST이다.)

"행동" 컬럼의 문자는 다음과 같은 의미이다:

기본 행동이 프로세스를 종료하는 것이다.
기본 행동이 시그널을 무시하는 것이다.
기본 행동이 프로세스를 종료하고 코어를 덤프한다.
기본 행동이 프로세스를 멈추는 것이다.
핸들러를 둘 수 없는 시그널이다.
무시할 수 없는 시그널이다.

호환

POSIX.1

버그

SIGIOSIGLOST는 같은 값을 갖는다. 후자는 커널 소스에서 주석 처리되었지만, 몇몇 소프트웨어의 프로세스는 여전히 29번 시그널을 SIGLOST로 생각한다.

관련 항목

kill(1), kill(2), setitimer(2)

역자

임종균 <hermes44@secsm.org>, 2000년 4월 21일

1996년 4월 14일 리눅스 1.3.88