Linux中的信号是什么?
什么是信号?
- 操作系统信号,英文signal,简称信号。
- 是IPC中唯一一种异步的通信方法。
- 它的本质是用软件来模拟硬件的中断机制。
- 信号用来通知某个进程有某个事件发生了。例如,在命令行终端按下某些快捷键,就会挂起或停止正在运行的程序。另外,通过kill命令杀死某个进程的操作也有信号的参与。
信号的表示方式?
- 每一个信号都有一个以“SIG”为前缀的名字,例如SIGINT,SIGQUIT,SIGKILL等等。
- 在操作系统内部,这些信号都由正整数表示,这些正整数称为信号编号。
如何查看操作系统的所有信号?
在Linux操作系统中,通过kill -l来查看所有的信号。
信号如何分类?
- Linux支持的信号有62种。注意:没有编号为32和33的信号。
- 编号从1到31的信号属于标准信号。
- 编号从34到64的信号称为实时信号。
标准信号存在什么问题?
对于同一个进程来说,每种标准信号只会被记录并处理一次。
如果发送给某一个进程的标准信号有多个,他们的处理顺序是不确定。
为什么要有实时信号?
- 实时信号解决了标准信号的两大问题。同种类的实时信号都可以记录在案,并且他们可以按照信号的发送顺序被处理。
- 已成为事实的标准信号无法被替换,所有标准信号和实时信号共存。
信号的来源有哪些?
- 键盘输入,比如ctrl+c
- 硬件故障
- 系统函数调用
- 软件中的非法运算
响应信号的方式有哪些?
- 忽略
- 捕捉
- 执行默认操作
进程响应信号的默认方式有哪些?
- 终止进程
- 忽略该信号
- 终止进程并保存内存信息
- 停止进程
- 恢复进程(若进程已停止)
不能自行处理和忽略的信号有哪些?
- SIGKILL和SIGSTOP这两种信号不能被自行处理,也不能被忽略,对它们的操作只能是系统默认操作。
- 根本原因是为了向系统超级用户提供使进程终止或停止的可靠方法。
- 这种保障不论对应用程序还是操作系统来说,都是非常有必要的。
示例1:忽略进程信号
package mainimport ("fmt""os""os/signal"
)func main() {// 创建一个管道,是Notify的第一个参数的类型sigRecv := make(chan os.Signal, 1)// 发送通知signal.Notify(sigRecv)// 从管道中读取信号for sig := range sigRecv {fmt.Printf("Received a signal: %s\n", sig)}
}
示例2:取消通知
package mainimport ("fmt""os""os/signal"
)func main() {// 创建一个管道,是Notify的第一个参数的类型sigRecv := make(chan os.Signal, 1)// 发送通知signal.Notify(sigRecv)// 从管道中读取信号for sig := range sigRecv {fmt.Printf("Received a signal: %s\n", sig)// 取消signal.Stop(sigRecv)close(sigRecv)}
}
Linux中的信号是什么?相关推荐
- linux内核定义的常用信号6,Linux中的信号
在 Linux 中,理解信号的概念是非常重要的.这是因为,信号被用于通过 Linux 命令行所做的一些常见活动中.例如,每当你按 Ctrl+C 组合键来从命令行终结一个命令的执行,你就使用了信号.每当 ...
- linux 信号_[入门]谈一谈Linux中的信号
也许有一些同学有这样的疑问: kill -9 PID 中的 -9 到底是什么意思? Ctrl + C 是为什么可以停止掉运行的程序? 1. 什么是信号? 在计算机科学中,信号是Unix.类Unix以及 ...
- linux中的信号是什么意思,linux中信号的基本概念
1.信号的基本概念: 信号全称为软中断信号,也有人称作软中断,信号机制是进程之间相互传递消息的一种方法. 2.信号的作用: 进程之间可以互相通过系统调用kill发送软中断信号,通知进程发生了某个事件. ...
- linux守护实例有什么用,linux中的信号及进程守护的应用实例分享
一.什么是信号? <1>信号是用来向进程通知事件 <2>每个信号已SIG开头,信号名定义在#include 二.进程收到信号,可以做出三种措施 <1>忽略信号 &l ...
- linux中的信号1——信号概述
以下内容源于朱有鹏<物联网大讲堂>课程的学习整理,如有侵权,请告知删除. 1.信号是内容受限的一种异步通信机制 (1)信号的目的:用来进程间通信(IPC).进程和内核间的通信: (2)信号 ...
- 使用Linux中的信号做一个小小的类似考试系统
说是考试系统,其实就是玩玩而已,重要的是里面的用法. 使用定时信号来处理超时与不超时的问题.该类似系统中就做了处理 结果显示:左边为不超时,右边为超时
- linux中的信号3——alarm、pause函数
以下内容源于朱有鹏<物联网大讲堂>课程的学习,如有侵权,请告知删除. 1.alarm函数 内核以API形式提供的闹钟: 可以为当前进程定义闹钟,时间到了会发出SIGALRM信号. 每个进程 ...
- linux中的信号2——进程如何处理信号?
以下内容源于朱有鹏<物联网大讲堂>课程的学习整理,如有侵权,请告知删除. 1.signal函数介绍 (1)举例:用signal函数处理SIGINT信号(这个信号由ctrl+c时发出) 默认 ...
- Linux中的信号处理原理
Linux中的信号来自Unix,在发展了30多年之后,许多方面都没有发生太大的变化.信号可以由内核产生,也可以由用户进程产生,并由内核传送给特定的进程或线程(组),若这个进程定义了自己的信 ...
最新文章
- 自监督学习现状和未来
- linux 服务启动依赖,linux下的系统服务介绍——init、systemd
- Can't connect to HTTPS URL because the SSL module is not available
- php下正则替换多个br /
- 史上最简单的 SpringCloud 教程 | 第一篇: 服务的注册与发现(Eureka)
- python安装第三方库win10_在win里anaconda怎么安装第三方的库
- 【Notes8】Linux开发环境,Linux命令,vi命令,/正则,Hash,iNode,文件查找与读取,Linux开机自启动
- sql语句中的in用法示例_PHP中的循环语句和示例
- 编辑器,webstorm,phpstorm系列配置方法汇总-笔记
- java 不退出_(Java)如果我在其外面点击,JPopupMenu将不会关闭
- WebStorm配置github
- 统计函数应用之SQL 分析函数
- OSChina 周一乱弹 —— 只要给网,这种生活我能过一辈子
- js 获取url参数_小总结 - JS获取页面URL信息
- 图片压缩小工具,jpg,png压缩
- JAVA中Object类中的equal方法
- 七:Shell脚本:正则表达式与文本处理器三剑客grep,egrep, sed,awk
- 计算机网络 一种自上而下的方法,计算机网络-自上而下-和-自下而上-两种教学方法比较分析.pdf...
- Matomo API 官方接口详情
- 计算机开机定屏,电脑主板开机画面定屏解决方法
热门文章
- sqoop报错以及解决:Access denied for user 'root'@'172.16.21.22' (using password: YES)
- 波士顿大学计算机与传媒专业,波士顿大学传媒专业在全美教育排名前10
- oracle实现sha加密解密,oracle部分字段加密解密 实现模糊搜索
- 数学软件四大家族—MATLAB、MathCAD、Maple 和 Mathematica 优缺点比较
- 区块链开发公司解析区块链怎样与大数据完美结合
- C语言实现二进制与十进制的互转(带小数)
- 达梦数据库培训学习学习心得
- juniper 认证学习、报名地址汇总
- 个人邮箱怎么注册,如何群发邮件?
- 分类模型优劣分析指标