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

【合集】Linux——31个普通信号

Linux普通信号总表(1-31)​

编号信号名触发原因默认动作
1SIGHUP终端连接断开(如SSH会话终止)或守护进程重载配置(如nginx -s reload终止进程
2SIGINT用户输入Ctrl+C中断前台进程终止进程
3SIGQUIT用户输入Ctrl+\退出进程终止并生成core文件
4SIGILL执行非法CPU指令(如不支持的指令集)终止并生成core文件
5SIGTRAP调试断点或陷阱指令触发(由GDB等调试器使用)终止并生成core文件
6SIGABRT调用abort()函数或断言失败(如assert()终止并生成core文件
7SIGBUS内存对齐错误(如访问非对齐地址)终止并生成core文件
8SIGFPE算术异常(如除零、浮点溢出)终止并生成core文件
9SIGKILLkill -9强制终止进程(不可被捕获、阻塞或忽略立即终止
10SIGUSR1用户自定义信号1(需程序主动处理)终止进程
11SIGSEGV非法内存访问(如空指针解引用、缓冲区溢出)终止并生成core文件
12SIGUSR2用户自定义信号2终止进程
13SIGPIPE向无读端的管道或Socket写入数据(如网络连接断开后继续发送)终止进程
14SIGALRM定时器到期(由alarm()setitimer()设置)终止进程
15SIGTERM默认终止信号(kill不加参数时发送),允许进程清理资源终止进程
16SIGSTKFLT协处理器栈错误(现代Linux中极少使用)终止进程
17SIGCHLD子进程终止或停止时通知父进程(默认忽略,需主动回收僵尸进程)忽略
18SIGCONT恢复被暂停的进程(如fg命令)继续执行
19SIGSTOP暂停进程(不可被捕获、阻塞或忽略Ctrl+Z实际触发SIGTSTP停止进程
20SIGTSTP终端暂停信号(Ctrl+Z停止进程
21SIGTTIN后台进程尝试读取终端输入停止进程
22SIGTTOU后台进程尝试向终端输出停止进程
23SIGURGSocket收到带外数据(OOB)忽略
24SIGXCPU进程CPU时间超限(由setrlimit()设置)终止并生成core文件
25SIGXFSZ文件大小超限(如写入超过ulimit限制)终止并生成core文件
26SIGVTALRM虚拟计时器到期(统计进程占用CPU时间)终止进程
27SIGPROF性能分析计时器到期(统计CPU及系统调用时间)终止进程
28SIGWINCH终端窗口大小变化(如调整xterm窗口)忽略
29SIGIO异步I/O事件就绪(需配合fcntl()设置)终止进程
30SIGPWR电源故障(由UPS或系统监控进程发送)终止进程
31SIGSYS无效系统调用(如调用不存在的syscall)终止并生成core文件

关键特性说明

  1. 不可拦截信号​:
    SIGKILL(9)和SIGSTOP(19)​无法被捕获、阻塞或忽略​,是系统强制控制进程的终极手段。

  2. 核心转储(Core Dump)​​:
    信号如SIGSEGVSIGABRT触发时默认生成core文件(需系统配置允许),用于事后调试定位崩溃原因

  3. 进程控制信号组​:

    • 停止进程​:SIGSTOPSIGTSTPSIGTTINSIGTTOU
    • 恢复进程​:SIGCONT
  4. 用户自定义信号​:
    SIGUSR1(10)和SIGUSR2(12)无预设行为,需程序主动注册处理函数以实现自定义逻辑(如热重载配置)

  5. 异步安全警告​:
    信号处理函数(Handler)中只能调用异步信号安全函数​(如write()_exit()),避免使用malloc()printf()等非安全函数


常见应用场景

  • 服务优雅退出​:捕获SIGTERM(15)释放资源后退出
  • 子进程回收​:处理SIGCHLD(17)避免僵尸进程
  • 调试定位崩溃​:分析SIGSEGV(11)生成的core文件
  • 定时任务控制​:通过SIGALRM(14)实现超时机制
http://www.lryc.cn/news/2393877.html

相关文章:

  • 从0到1搭建AI绘画模型:Stable Diffusion微调全流程避坑指南
  • ASP.NET Core 中JWT的基本使用
  • 未来技术展望
  • 从一到无穷大 #46:探讨时序数据库Deduplicate与Compaction的设计权衡
  • vue3 导出excel
  • 带你手写React中的useReducer函数。(底层实现)
  • day024-网络基础-TCP与UDP、DNS
  • 专场回顾 | 重新定义交互,智能硬件的未来设计
  • 如何把一台电脑作为另外一台电脑的显示器
  • WPS 免登录解锁编辑
  • 【C/C++】线程安全初始化:std::call_once详解
  • 技术分享 | Oracle SQL优化案例一则
  • ​什么是RFID电子标签​
  • 华为手机用的时间长了,提示手机电池性能下降,需要去换电池吗?平时要怎么用能让电池寿命长久一些?
  • BERT***
  • 超级对话2:大跨界且大综合的学问融智学应用场景述评(不同第三方的回应)之二
  • 在Linux环境里面,Python调用C#写的动态库,如何实现?
  • 【Linux 基础知识系列】第三篇-Linux 基本命令
  • OpenCV CUDA模块直方图计算------生成一组均匀分布的灰度级函数evenLevels()
  • 深度学习常见实验问题与实验技巧
  • 前端面试之Proxy与Reflect
  • uniapp vue3 鸿蒙支持的 HTML5+接口
  • 一张Billing项目的流程图
  • 理想树图书:以科技赋能教育,开启AI时代自主学习新范式
  • 【大模型02】Deepseek使用和prompt工程
  • B端产品经理如何快速完成产品原型设计
  • [Java实战]Spring Boot切面编程实现日志记录(三十六)
  • Apache POI生成的pptx在office中打不开 兼容问题 wps中可以打卡问题 POI显示兼容问题
  • 大学大模型教学:基于NC数据的全球气象可视化解决方案
  • Python学习(2) ----- Python的数据类型及其集合操作