Linux下常用的信号有哪些
1.5 Linux下都有哪些信号
1.5.1 信号列表 kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) 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) 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
在命令行支持kill -l,可以显示所有的信号列表
总共62个信号,也就是说每个进程都可以接收的信号种类有62种。1~64为信号的编号,SIG***为信号的宏名。
(1) 为什么这么多信号
每个信号代表着某种事件,一般情况下,当进程收到某个信号时,就表示该信号所代表的事件发生了。
可能发生的事件有很多种,所以有这么多信号,每个信号对应着自己特有的事件。
(2)这么多信号,记不住怎么办?
(1)35~64:这些信号是Linux后期增设的信号,这些信号不需要关心,不需要了解。
(2)1~34:也不是所有的信号都要掌握,我们只关心其中常用的信号
(3)就算对1~34中的常用信号,我们的要求是理解,而不是记忆。当忘记了信号名字时,kill -l查看即可。对这些信号,理解是关键。
1.5.2 常用信号
信号宏名
信号编号
说明
系统默认处理方式
SIGABRT
6
终止进程,调用abort函数时产生
终止,产生core文件
SIGALRM
14
超时,调用alarm函数时产生
终止
SIGBUS
7
硬件故障
终止,产生core文件
SIGCHLD
17
子进程状态改变
忽略
SIGINT
2
终止进程(Ctrl+C)
终止
SIGIO
29
异步通知信号
终止
SIGKILL
9
无条件终止一个进程,不可以被捕获或忽略
终止
SIGPIPE
13
写没有读权限的管道文件时
终止
SIGPOLL
8
轮训事件,涉及POLL机制
终止
SIGTERM
15
kill PID时默认发送的信号
终止
SIGQUIT
3
终止进程( Ctrl+\ )
终止,产生core文件
SIGSEGV
11
无效存储访问(指针错误)
终止
SIGUSER1
10
用户自定义信号1
终止
SIGUSER2
10
用户自定义信号2
终止
原文:https://www.cnblogs.com/doitjust/p/12622376.html