Linux 信号
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 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3
38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
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
编号 信号名称 缺省动作 描述 1 SIGHUP 终止 终止进程,挂起 2 SIGINT 终止 键盘输入中断命令,一般是CTRL+C 3 SIGQUIT CoreDump 键盘输入退出命令,一般是CTRL+\ 4 SIGILL CoreDump 非法指令 5 SIGTRAP CoreDump trap指令发出,一般调试用 6 SIGABRT CoreDump abort(3)发出的终止信号 7 SIGBUS CoreDump 非法地址 8 SIGFPE CoreDump 浮点数异常 9 SIGKILL 终止 立即停止进程,不能捕获,不能忽略 10 SIGUSR1 终止 用户自定义信号1,像Nginx就支持USR1信号,用于重载配置,重新打开日志 11 SIGSEGV CoreDump 无效内存引用 12 SIGUSR2 终止 用户自定义信号2 13 SIGPIPE 终止 管道不能访问 14 SIGALRM 终止 时钟信号,alrm(2)发出的终止信号 15 SIGTERM 终止 终止信号,进程会先关闭正在运行的任务或打开的文件再终止,有时间进程在有运行的任务而忽略此信号。不能捕捉 16 SIGSTKFLT 终止 处理器栈错误 17 SIGCHLD 可忽略 子进程结束时,父进程收到的信号 18 SIGCONT 可忽略 让终止的进程继续执行 19 SIGSTOP 停止 停止进程,不能忽略,不能捕获 20 SIGSTP 停止 停止进程,一般是CTRL+Z 21 SIGTTIN 停止 后台进程从终端读数据 22 SIGTTOU 停止 后台进程从终端写数据 23 SIGURG 可忽略 紧急数组是否到达socket 24 SIGXCPU CoreDump 超出CPU占用资源限制 25 SIGXFSZ CoreDump 超出文件大小资源限制 26 SIGVTALRM 终止 虚拟时钟信号,类似于SIGALRM,但计算的是进程占用的时间 27 SIGPROF 终止 类似与SIGALRM,但计算的是进程占用CPU的时间 28 SIGWINCH 可忽略 窗口大小改变发出的信号 29 SIGIO 终止 文件描述符准备就绪,可以输入/输出操作了 30 SIGPWR 终止 电源失败 31 SIGSYS CoreDump
#!/bin/sh
function trap_ctrlc ( )
{
echo "Ctrl-C caught...performing clean up"
echo "Doing cleanup"
exit 2
}
trap "trap_ctrlc" 2
echo "going to sleep"
sleep 1000
echo "end of sleep"