Linux信号介绍
Linux的信号是由一个整数构成的异步消息,可以通过
- 响应特定的事件(按键)
- kill命令发送等
信号列表
[huanwei@hwloser ~]$ trap -l # kill -l1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR111) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+338) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+843) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+1348) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-1253) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-758) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-263) SIGRTMAX-1 64) SIGRTMAX
对于部分命令的解释
| 信号 | 说明 |
|---|---|
| HUP(1) | 挂起,通常因终端掉线或用户退出而引发 |
| INT(2) | 中断,通常因按下 Ctrl+c 组合件而引发 |
| QUIT(3) | 退出。通常因按下 Ctrl+\ 组合键而引发 |
| ABRT(6) | 中止,通常因某些严重的执行错误而引发 |
| ALRM(14) | 报警,通常用来处理超时 |
| TERM(15) | 终止,通常在系统关机时发送 |
| TSTP(20) | 停止进程的运行,但该信号可以被处理和忽略,通常因按下 Ctrl+z 组合键而引发 |
控制信号
trap命令用于制定在接受到信号之后,将要采取的行动。
trap命令:
- 可以被用在脚本执行完毕时(可能在终端退出)做一些清理工作,
- 屏蔽用户非法使用的某些信号。
键盘命令与中断信号的对应关系
huanwei@hwloser ~]$ stty -a speed 38400 baud; rows 33; columns 93; line = 0; intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; discard = ^O; min = 1; time = 0; -parenb -parodd -cmspar cs8 -hupcl -cstopb cread -clocal -crtscts -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon ixoff -iuclc -ixany -imaxbel iutf8 opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0 isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke -flusho -extproc
