Linux C语言 48-信号总结

Linux C语言 48-信号总结

本节关键字:Linux、C语言、常用信号
相关C库函数:printf、signal、kill

Linux中都有哪些信号

信号在Linux操作系统中是很重要的,信号的产生方式可以是来自键盘、由软件条件产生、调用硬件异常产生。来自系统函数调用产生、在Linux中一共有64种信号 ,Linux用户可以通过 kill -l 查看,如下:

[root@localhost ~]# uname -a
Linux localhost.localdomain 3.10.0-1160.71.1.el7.x86_64 #1 SMP Tue Jun 28 15:37:28 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
[root@localhost ~]# 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    
[root@localhost ~]# 
  • 前32种称为不可靠信号,一般用于软件,不支持排队;
  • 后32种称为可靠信号,一般用于硬件,支持排队。

常用信号一览表

信号值信号宏说明
1SIGHUP进程立即关闭,终端连接(正常或非正常)结束时发出
2SIGINT程序中止信号,用于中止前台程序,输出 Ctrl+C 快捷键
3SIGQUIT程序退出信号,输出 Ctrl+\ 快捷键
6SIGABRT终止进程并产生core文件,调用abort函数时产生
7SIGBUS终止进程并产生core文件,硬件故障,进程访问非法地址
8SIGFPE发生致命的算术运算错误时发出,不仅包括浮点运算错误,还包括溢出及除数为 0 等其他所有的算术运算错误
9SIGKILL无条件立即结束程序的运行。本信号不能被阻塞、处理和忽略。般用于强制中止进程
10SIGUSR1用户自定义信号,一般被用来告知应用程序重载配置文件
11SIGSEGV终止进程并产生core文件,硬件故障,进程访问非法地址
12SIGUSR2用户自定义信号,作用和意义由用户自己定义
13SIGPIPE终止收到该信号的进程,涉及管道和socket通信。socket通信时,对端异常终止,我端写套接字时收到该信号
14SIGALRM时钟定时信号,计算的是实际的时间或时钟时间。alarm 函数使用该信号
15SIGTERM正常结束进程的信号,kill 命令的默认信号。如果进程已经发生了问题,那么这 个信号是无法正常中止进程的,这时我们才会尝试 SIGKILL 信号,也就是信号 9
17SIGCHLD子进程退出信号,如果父进程没有忽略该信号也没有处理该信号,则子进程退出后将形成僵尸进程。
18SIGCONT让暂停的进程恢复执行。本信号不能被阻断
19SIGSTOP暂停前台进程,相当于输入 Ctrl+Z 快捷键。本信号不能被阻断

补充说明:

  • Term 表示终止进程
  • Core 表示终止进程并 dump core
  • Stop 挂起线程
  • Cont 恢复挂起的线程
  • 12
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值