列出常见的信号,信号怎么处理?

1、常见的信号
信号(signal)是很短的信息,可以被发送到一个进程或一组进程,发送给进程的唯一信息通常是一个数,以此来表示信号。
信号的两个主要目的:让进程知道已经发生了一个特定的事件;强迫进程执行它自己代码中的信号处理程序。
$ 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    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~31是 不可靠信号(非实时的),POSIX标准中还引入了一类新的信号,叫做 可靠信号( 实时信号)(32~64)。
不可靠信号和可靠信号的区别在于前者不支持排队,可能会造成信号丢失,而后者不会。如果一个不可靠信号被连续发送多次,那么只有其中的一个发送到接收进程。

2
SIGINT
terminate
来自键盘的中断(通常是Ctrl+c)
9
SIGKILL
terminate
强迫进程终止(kill -9)
15
SIGTERM
terminate
进程终止(不带参数时kill默认发送的信号)
19
SIGSTOP
stop
停止进程执行
18
SIGCONT
continue
如果进程已停止则恢复执行
11
SIGSEGV
dump
无效的内存引用
14
SIGALRM
terminate
实时定时器时钟
20
SIGTSTP
stop
从tty发出停止进程(Ctrl+z)
SIGSEGV:segmentFault,试图访问未分配给自己的内存,或试图往没有写权限的内存地址写数据。
(1)buffer overflow:usually caused by a pointer reference out of range。野指针
(2)stack overflow:please keep in mind that the default stack size is 8192K(4M)。栈溢出
(3)illegal file access:file operations are forbidden on our judge system。非法文件访问


2、进程对一个信号的应答

进程以三种方式对一个信号做出应答:
(1)显示地忽略信号
(2)执行与信号相关的缺省操作。内核预定义的缺省操作取决于信号的类型,有以下几种:
terminate:进程被终止(杀死)
dump:进程被终止(杀死)并且如果可能,创建包含进程执行上下文的核心转储文件,core dump文件。
ignore:信号被忽略
stop:进程被停止,把进程置为TASK_STOPPED状态
continue:如果进程被停止(TASK_STOPPED ),就把它置为TASK_RUNNING状态
(3)通过调用相应的信号处理函数捕获信号


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值