当前位置: 首页 > news >正文

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 -l1) SIGHUP     2) SIGINT     3) SIGQUIT     4) SIGILL     5) SIGTRAP6) 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 恢复挂起的线程
http://www.lryc.cn/news/275342.html

相关文章:

  • 【vue技巧】之如何让mixin的data 比本身vue的data优先级要高
  • 全解析阿里云Alibaba Cloud Linux镜像操作系统
  • 什么是数据结构?
  • GOOS=darwin 代表macOS环境
  • hfish蜜罐docker部署
  • 我的创作纪念日——redis的历史纪录
  • 【Bootstrap5学习 day10】
  • 2024年学习计划
  • 学习笔记:C++之 switch语句
  • C++ 具名要求-全库范围的概念
  • 分布式(4)
  • XCTF-Misc1 USB键盘流量分析
  • 毛概笔记。
  • postman使用方法指南,最全面的教程
  • 工业物联网上篇——什么是IIOT?
  • 【JavaEE】Java多线程状态-- 多线程篇(10)
  • 坐标转换 | EXCEL中批量将经纬度坐标(EPSG:4326)转换为墨卡托坐标(EPSG:3857)
  • STM32学习笔记二十:WS2812制作像素游戏屏-飞行射击游戏(10)探索游戏平衡
  • Windows 搭建ninja 编译c++的环境
  • 环形链表【链表】【哈希】
  • Hive实战:网址去重
  • 206.【2023年华为OD机试真题(C卷)】最大N个数与最小N个数的和(JavaPythonC++JS实现)
  • 【刷题日记】青少年CTF-Misc(一)
  • 《未知星途:自我掌握命运》
  • 一个简单的KNN实现方法
  • Vue实现加减法验证码
  • PDF最强处理工具-StirlingPDF
  • SpringCloud系列篇:入门讲解Spring Cloud是什么
  • GEE:随机数
  • H266/VVC率失真优化与速率控制概述