linux 信号
linux 信号64个 kill -l 查看
$ 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
-
信号是进程间通信机制中唯一的异步通信机制
-
信号处理三种方式
- 捕捉信号(调用用户自定义的函数)
- 忽略信号,对该信号丢弃不做任何处理,就像未发生过一样。
- 执行信号的默认处理方式
-
信号处理三种状态
- 信号的产生
- 按键产生,如:Ctrl+C、Ctrl+Z、Ctrl+\
- 系统调用产生:如:kill、raise、abort
- 软件条件产生:如:定时器alarm
- 硬件异常产生:如:非法访问内存(段错误)、除0(浮点数除外)、内存对齐出错
- 命令产生:如:kill命令
- 未决:产生和递达之间的状态。主要由于阻塞(屏蔽)导致该状态。
- 递达:递达并且到达进程
- 信号的产生
-
可靠信号 实时信号都支持排队,都是可靠信号
- SIGRTM* 后面加的信号
-
不可靠 非实时信号都不支持排队,都是不可靠信号
- SIG* 继承unix 系统的信号
-
kill -9 不能阻塞也不能忽略
-
kill -15 默认 可以被阻塞也可以忽略
-
自定义信号 10 USR1 12 USR2 例如 nginx USR2 实现reload
本文来自博客园,作者:vx_guanchaoguo0,转载请注明原文链接:https://www.cnblogs.com/guanchaoguo/p/16257699.html