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
posted @ 2022-05-11 14:03  vx_guanchaoguo0  阅读(19)  评论(0编辑  收藏  举报