Linux进程通信:信号

news2025/4/4 6:24:32

1. 信号的概念

Linux进程间通信的方式之一。信号也称为“软件中断”。

信号特点:

  • 简单;
  • 携带信息有限;
  • 满足特定条件才发送信号;
  • 可进行用户空间和内核空间进程的交互;

2. 信号的编号

kill -l   // 查看信号编号

POSIX信号标准: 

 1~31为常规信号;34~64为实时信号(驱动编程、硬件相关)。

Linux常规信号介绍:

编号信号事件默认操作
1SIGHUP用户退出shell时,由该shell启动的所有进程会收到SIGHUP信号。终止进程
2SIGINTCtrl + C触发该信号,由该终端启动的正在运行的进程会收到SIGINT信号。终止进程
3SIGQUITCtrl + \ 触发该信号,由该终端启动的正在运行的进程会收到SIGQUIT信号。终止进程
4SIGILLCPU检测到某些进程执行非法指令。终止进程并产生core文件
5SIGTRAP由断点指令或其他trap指令产生。终止进程并产生core文件
6SIGABRT调用abort函数时产生该信号。终止进程并产生core文件
7SIGBUS非法访问内存地址、内存对齐出错。终止进程并产生core文件
8SIGFPE发生致命运算错误。浮点运算错误、溢出、除数为0等。终止进程并产生core文件
9SIGKILL无条件终止进程。该信号不能被忽略、处理、阻塞。终止任意进程
10SIGUSE1用户定义的信号。程序员可在程序中定义并使用该信号。终止进程
11SIGSEGV进程进行了无效内存访问(段错误)。终止进程并产生core文件
12SIGUSR2用户定义的信号。程序员可在程序中定义并使用该信号。终止进程
13SIGPIPEBroken pipe向一个无读端的管道写数据。终止进程
14SIGALRM定时器超时,超时时间由系统调用alarm设置。终止进程
15SIGTERM终止进程,该信号可被阻塞、终止。通常用来通知程序正常退出。kill命令的缺省选项就是这个信号。终止进程
16SIGSTKFLTLinux早期版本的信号,使用极少。终止进程
17SIGCHLD子进程结束时,父进程会收到该信号。忽略
18SIGCONT使暂停的进程继续运行继续/忽略
19SIGSTOP暂停进程。不能被忽略、处理、阻塞。暂停进程
20SIGTSTPCtrl + z触发该信号,暂停与终端交互的进程。暂停进程
21SIGTTIN后台进程读终端控制台暂停进程
22SIGTTOU类似于SIGTTIN,后台进程向终端输出数据时触发暂停进程
23SIGURGsocket上有紧急数据时,向当前进程发出该信号忽略
24SIGXCPU进程执行时间超过CPU时间的总量。(不是超过了时间片)终止进程
25SIGXFSZ超过文件最大长度终止进程
26SIGVTALRM虚拟时钟产生的信号,类似于SIGALRM。该信号3计算该进程占用CPU的时间终止进程
27SIGPROF类似于SIGVTALRM,计算进程占用CPU时间 + 系统调用时间终止进程
28SIGWINCH窗口大小变化时触发忽略
29SIGIO向进程发出一个异步IO事件忽略
30SIGPWR关机终止进程
31SIGSYS无效的系统调用终止进程并产生core文件
31~64SIGRTMIN~SIGRTMAXLinux实时信号,无固定含义,可由用户自定义终止进程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/460101.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ModelArts的使用

完整流程第一个实例:AI初学者:使用订阅算法构建模型实现花卉识别_AI开发平台ModelArts_最佳实践_模型训练(预置算法-新版训练)_华为云 一、支持的模型 可以在gitee上下载标准网络模型: models: Models of MindSpore …

Prometheus优化及高可用

Prometheus优化及高可用 概述 Prometheus几乎已成为监控领域的事实标准,它自带高效的时序数据库存储,可以让单台 Prometheus 能够高效的处理大量的数据,还有友好并且强大的 PromQL 语法,可以用来灵活的查询各种监控数据以及配置…

使用 chat_flutter 进行聊天记录展示

前言 最近需要实现一个聊天记录的页面展示,在网上发现没有适合自己的,于是自己就造了一个,总体感觉还不赖。 下面奉上地址、效果图和教程。 效果图 地址 github: https://github.com/xiaorui-23/chat_fluttergitee: https://gitee.com/xi…

搭建微型服务器(node express框架)

目录 一:打包(npm run build) 二:变成合法的包(新建server文件夹) 三:一路回车 四:新建服务器主文件 五:编辑server.js 六:node server启动服务器 七&a…

第十二章 享元模式

文章目录 前言一、享元模式基本介绍二、享元模式解决网站展现项目完整代码WebSite 抽象网站类User 外部状态用户内部状态网站 ConcreteWebSite网站工厂产生网站和负责共享(池) WebSiteFactoryClint 测试 三、享元模式在JDK-Interger的应用源码分析四、享…

NFS部署

共享/webdata/目录; ~ 用于存储 AppSrv 主机的 WEB 数据; ~ 仅允许 AppSrv 主机访问该共享; ~ 考虑安全,不论登入 NFS 的使用者身份为何,都将其设置为匿名用 户访问 StorageSrv和AppSrv nfs共享 1.安装nfs(App…

pdf怎么删除其中一页?

pdf怎么删除其中一页?大家都应该知道,PDF是一种实用性非常强且非常便携文件格式,许多用户对其非常熟悉。不管是工作还是学习中,都会下载或者使用到pdf文件。pdf文件具有非常好的兼容性,F可以将各种图片、文字内容整合在…

根据cadence设计图学习硬件知识day05 了解一些芯片

1.NXS0102DC (2位双电源转换收发器) 1.NXS0102DC 介绍 NXS0102是一款2位双电源转换收发器,具有自动方向感测功能,可实现双向电压电平转换。它具有两个2位输入输出端口(An和Bn)、一个输出使能输入&#xf…

Transformer 原理及代码详细解析

Transformer 原理及代码详细解析 文章目录 Transformer 原理及代码详细解析一、Transformer 背景介绍1.1 Transformer 的诞生1.2 Transformer 的优势1.3 Transformer 的市场 二、Transformer架构解析2.1 认识 Transformer 架构2.1.1 Transformer模型的作用2.1.2 Transformer 总…

k8s优雅终止pod

k8s优雅终止pod 概述 Pod 销毁时,会停止容器内的进程,通常在停止的过程中我们需要执行一些善后逻辑,比如等待存量请求处理完以避免连接中断,或通知相关依赖进行清理等,从而实现优雅终止目的。本文介绍在 Kubernetes …

深度学习—入门

深度学习与机器学习的区别 深度学习由机器学习中的神经网络发展而来,机器学习多用于处理数值数据,而深度学习还可处理图片、音频等数据。 特征提取方面 机器学习的特征工程步骤需要靠手动完成,需要大量专业领域知识。深度学习通常由多个层组…

Mysql8.0 包学包会!一篇文章解决Mysql

基于尚硅谷的Mysql8.0视频,修修改改。提取了一些精炼的内容。 首先需要在数据库内引入一张表。链接地址如下。 链接:https://pan.baidu.com/s/1DD83on3J1a2INI7vrqPe4A 提取码:68jy 会进行持续更新。。 1. Mysql目录结构 Mysql的目录结构…

传感器-红外接收,NodeMCU,arduino实现红外接收,4.x版本的irRemote库的使用

一&#xff0c;常见视频和搜索到接收红外的代码 发送参考&#xff0c;接收参考 这里只是看arduino中的接收程序&#xff0c; #include <IRremote.h> int RECV_PIN 5; /红外接收模块的s引脚 IRrecv irrecv(RECV_PIN); decode_results results; void setup() {Serial.b…

复现Apache HTTPD 换行解析漏洞(CVE-2017-15715)

影响版本 2.4.0~2.4.29都有可能存在该漏洞 原理分析 进入容器 docker exec -it 容器ID /bin/bash 该程序是采用黑名单的形式&#xff0c;如果文件后缀名不在名单内即可上传&#xff0c;所以 a.php\x0A不在黑名单列表中&#xff0c;可以上传。但是x0A是换行符&#xff0c;所…

Cahpter 3 : Defining Clocks(ug903:Vivado using constraints

1、About Clocks 在数字设计中&#xff0c;时钟代表了从寄存器到寄存器可靠传输数据的时间基准。XilinxVivado集成设计环境&#xff08;IDE&#xff09;时序引擎使用时钟特性来计算时序路径要求&#xff0c;并通过松弛计算报告设计时序裕度。必须正确定义时钟&#xff…

本原数据:回归数据库技术本原,做难而正确的事

数据库技术是信息科技领域的最为重要的技术之一。随着科技的不断进步&#xff0c;数据库技术得到了迅速的发展&#xff0c;应用范围也越来越广泛。 与此同时&#xff0c;在数据量持续高速增长的情况下&#xff0c;企业对数据库也提出了更高的要求&#xff0c;例如数据存储越来…

海尔智家:智慧场景掌握「主动」权,用户体验才有话语权

2023年1月&#xff0c;《福布斯》AI专栏作家Rob Toews发布了年度AI发展预测&#xff0c;指出人工智能的发展将带来涉及各行业、跨学科领域的深远影响。变革将至&#xff0c;全球已掀起生成式AI热&#xff0c;以自然语言处理为代表的人工智能技术在快速进化&#xff0c;积极拥抱…

在maven工程下使用springmvc框架启动tomcat时报404 以及常见的错误和解决方式

以下的问题是我花了三天的时间解决的bug,网上找的各种资源都是一个样子&#xff0c;不能解决我的问题&#xff0c;非常的蛋疼。最后在咸鱼花了我15元找了个大神帮我调试的。 1.问题一 idea中通过maven已经导入了包&#xff0c;idea中也能定位到包的位置&#xff0c;本地maven仓…

用Python分析周杰伦歌曲并进行数据可视化

大家好&#xff0c;今天我们用python分析下周杰伦歌曲。为了尽量完整地呈现从原始数据到可视化的过程&#xff0c;接下来我们会先简单讲解数据的预处理过程&#xff0c;即如何将 JSON 数据转化为Excel 格式&#xff0c;以及如何对周杰伦的歌曲进行分词。 本案例中的歌词数据来…

RedHat Linux系统故障修复—— grub引导、MBR损坏修复过程

一、故障问题 MBR损坏是一种非常常见的错误&#xff0c;两种情况&#xff1a;1.MBR文件损坏 2.grub目录被误删除 1.首先&#xff0c;MBR是安装在硬盘的第一个扇区上占用了512个字节&#xff0c;其中前446字节是bootloader用于引导操作系统&#xff08;中间的64个自己用来指定…