의미전달에 사용되는 대표적인 방법
하던일 A를 중간에 잠시 멈추고 다른일 B를 하고 난 후, 다시 A로 돌아와서 멈춘 부분부터 일을 하는 것
kill -시그널번호 PID
신호를 보내는 명령어
#include <sys/types.h>
#include <signal.h>
int kill(pid_t pid, int sig);
int raise(int sig);
#kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR
31) SIGSYS 34) SIGRTMIN
38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3
43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7
58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
63) SIGRTMAX-1 64) SIGRTMAX
신호 | 설명 |
---|---|
SIGHUP | 터미널과 연결이 끊겼을 때 발생합니다. 기본적인 처리는 프로세스가 종료되는 것입니다. |
SIGINT | Ctrl+C로 전경 프로세스 그룹의 모든 프로세스들에게 SIGINT 신호를 발생시킵니다. 기본으로 프로세스가 종료됩니다. |
SIGQUIT | Ctrl+\의 조합으로 전경 프로세스 그룹의 모든 프로세스에게 SIGQUIT을 발생시킵니다. 이 신호를 받는 프로세스는 기본적으로 종료되며 코어덤프를 생성합니다. |
SIGABRT | Abort함수를 호출하면 이 신호가 발생이 됩니다. 비정상적인 종료가 됩니다. |
SIGKILL | 프로세스를 무조건 종료합니다. 절대 무시할 수 없으며 제어될 수 도 없습니다. |
SIGSEGV | 프로세스가 잘못된 메모리를 참조했을 때 발생합니다. 기본 동작은 코어덤프를 남기고 종료합니다. |
SIGALRM | alarm함수에 의해 타이머가 만료되면 이 신호가 발생이 됩니다. |
SIGTERM | kill 함수의 기본 신호입니다. 기본적으로 프로세스가 종료합니다. |
SIGCHLD | 자식 프로세스에 의해서 발생하는 신호입니다. 자식 프로세스의 상태가 바뀔 때 이 신호가 발생합니다. 종료 뿐만 아니라 자식 프로세스의 정지나 재개 등에 의해 발생됩니다. |
SIGCONT | 중단된 프로세스를 다시 동작시킬 때 발생시키는 신호입니다. |
SIGSTOP | 프로세스를 중단시킵니다. 종료한 상태는 아닙니다. 이 신호 역시 제어될 수 없습니다. |
SIGTSTP | 이 신호는 프로세스를 중단시키는 신호라는 점에서 SIGSTOP과 비슷합니다. Ctrl+Z의 키 조합으로 신호를 발생시킬 수 있으며 SIGSTOP과는 다르게 시그널 처리를 할 수 있습니다. |