Signal

From 탱이의 잡동사니
Jump to: navigation, search

Overview

Signal 내용 정리

Signals

모든 시그널이 같은 동작을 유도하지 않는다. 또한, 프로세스에서 signal handler 를 설정했을 경우, signal handler 에서 지정된 동작을 하게된다.

Signal Alpha/Sparc X86/ARM/Others Mips Default Action Description
SIGABRT 6 6 6 Core Abort signal from abort(3).
SIGALRM 14 14 14 Term Timer signal from alarm(2).
SIGBUS 10 7 10 Core Bus error(bad memory access).
SIGCHLD 20 17 18 Ign Child stopped or terminated.
SIGCONT 19 18 25 Cont Continue if stopped.
SIGFPE 8 8 8 Core Floating point exception.
SIGHUP 1 1 1 Term Hangup detected on controlling terminal or death of controlling process.
SIGILL 4 4 4 Core Illegal instruction.
SIGINT 2 2 2 Term Interrupt from keyboard
SIGKILL 9 9 9 Term Kill signal
SIGPIPE 13 13 13 Term Broken pipe: write to pipe with no readers.
SIGPOLL - - - Term Pollable event(Sys V). Synonym for SIGIO.
SIGPROF 27 27 29 Term Profiling timer expired.
SIGQUIT 3 3 3 Core Quit from keyboard.
SIGSEGV 11 11 11 Core Invalid memory reference.
SIGSTOP 17 19 23 Stop Stop process
SIGSYS 12 31 12 Core Bad argument to routine(SVr4).
SIGTERM 15 15 15 Term Termination signal.
SIGTRAP 5 5 5 Core Trace/breakpoint trap.
SIGTSTP 18 20 24 Stop Stop typed at terminal.
SIGTTIN 21 21 26 Stop Terminal input for background process.
SIGTTOU 22 22 27 Stop Terminal output for background process.
SIGUSR1 30 10 16 Term User-defined signal 1.
SIGUSR2 31 12 17 Term User-defined signal 2.
SIGURG 16 23 21 Ign Urgent condition on socket(4.2BSD).
SIGVTALRM 26 26 28 Term Virtual alarm clock(4.2BSD).
SIGXCPU 24 24 30 Core CPU time limit exceeded(4.2BSD).
SIGXFSZ 25 25 31 Core File size limit exceeded(4.2BSD).
SIGIOT 6 6 6 Core IOT trap. A synonym for SIGABRT.
SIGEMT 7 - 7 Term
SIGSTKFLT - 16 - Term Stack fault on coprocessor(unused).
SIGIO 23 29 22 Term I/O now possible(4.2BSD).
SIGCLD - - 18 Ign A synonym for SIGCHLD
SIGPWR 29 30 19 Term Power failure(System V).
SIGINFO 29 - - Term A synonym for SIGPWR.
SIGLOST - - - Term File lock lost(unused).
SIGWINCH 28 28 20 Ign Window resize signal(4.3BSD, Sun).
SIGUNUSED - 31 - Core Synonymous with SIGSYS.
  • Term : 프로세스를 종료시킨다. 코어 파일을 생성하지는 않는다.
  • Ign : 시그널을 무시한다.
  • Core : 프로세스를 종료시키고 코어 파일을 생성한다.
  • Stop : 프로세스 동작을 정지시킨다.
  • Cont : 정지 상태인 프로세스를 다시 동작 시킨다.

SIGHUP

접속된 Terminal 의 연결이 종료될 때 보내지는 signal 이다. 표준은 프로그램 종료이지만, 워낙 예전(표준이 없던 시절)부터 이 Signal 을 달리 처리하던 관습이 있어 많은 프로그램에서 SIGHUP 시그널을 달리 처리하고 있다. 특히 많은 DAEMON 프로그램에서는 설정 파일을 reload 하거나 logfile 을 reopen 하는 방식으로 구현하고 있다.

SIGPIPE

SIGPIPE 는 read 하는 곳이 없는 file descriptor 에 write 를 하는 경우 발생하는 signal 이다.

주로 socket 통신 프로그램에서 발생하며, 서버/클라이언트 프로그램 동작 중, 어느 한쪽이 먼저 소켓을 종료한 후에, 다른쪽에서 write 를 할 경우 발생한다. 이런 경우 SIGPIPE signal handler 를 등록하거나, 소켓의 상태를 항시 확인하는 방법 등으로 쉽게 해결이 가능하다.

See also

See also