Linux 信号
发布时间 - 2025-07-11 00:00:00 点击率:次linux 系统的进程间通信(inter-process communication, ipc)机制包括6种主要类型:
管道(PIPE)、信号(Signal)、命名管道(FIFO)、消息队列(Message Queue)、套接字(Socket)和共享内存(Shared Memory)。信号(Signal)是 UNIX 系统中最早使用的进程间通信机制,Linux 作为 UNIX 的继承者,也支持这一机制。信号通过向一个或多个进程发送异步事件信号来实现,可以由键盘输入或访问不存在的位置等触发;信号通过 shell 将任务发送给子进程。
在 Linux 系统中,你可以通过输入 kill -l 命令来列出系统支持的信号列表,以下是一些常见的信号:
进程可以选择忽略接收到的信号,但有两个信号是无法忽略的:SIGSTOP 和 SIGKILL。SIGSTOP 信号会通知当前运行的
进程停止执行,SIGKILL 信号会通知当前进程立即终止。除此之外,进程可以选择处理它想要处理的信号,也可以选择阻止信号。如果不阻止,可以选择自行处理或让内核进行默认处理。
操作系统会中断目标程序的进程以发送信号,在任何非原子指令中,执行都可以被中断。如果进程已经注册了信号处理程序,则执行该程序;如果没有注册,则采用默认处理方式。
例如:当进程收到 SIGFPE 浮点异常信号时,默认操作是进行转储(dump)并退出。信号没有优先级之分。如果同时为某个进程产生了两个信号,可以将它们按任意顺序呈现给进程或处理。
接下来我们详细了解这些信号的用途:
SIGABRT 和 SIGIOT:这两个信号发送给进程,指示其终止。通常在调用 C 标准库的 abort() 函数时由进程本身触发。
SIGALRM、SIGVTALRM、SIGPROF:当设置的时钟功能超时时,会将这些信号发送给进程。SIGALRM 在实际时间或时钟时间超时时发送,SIGVTALRM 在进程使用的 CPU 时间超时时发送,SIGPROF 在进程和系统代表进程使用的 CPU 时间超时时发送。
SIGBUS:当发生总线中断错误时发送给进程。
SIGCHLD:当子进程终止、被中断或恢复时,将此信号发送给进程。常用于指示操作系统在子进程终止后清理其使用的资源。
SIGCONT:SIGCONT 信号指示操作系统继续执行先前由 SIGSTOP 或 SIGTSTP 信号暂停的进程,常用于 Unix shell 中的作业控制。
SIGFPE:在执行错误的算术运算(如除以零)时发送给进程。
SIGHUP:当控制终端关闭时发送给进程。许多守护进程会重新加载配置文件并重新打开日志文件,而不是在收到此信号时退出。
SIGILL:在尝试执行非法、格式错误、未知或特权指令时发出。
SIGINT:当用户希望中断进程时,操作系统会发送此信号。用户按下 Ctrl-C 即是希望中断进程。
SIGKILL:此信号发送给进程以使其立即终止。与 SIGTERM 和 SIGINT 不同,此信号无法被捕获和忽略,进程在接收到此信号后无法执行任何清理操作。一些例外情况包括:
- 僵尸进程无法被杀死,因为它们已经死亡,等待父进程捕获。
- 处于阻塞状态的进程只有在被唤醒后才能被杀死。
- init 进程是 Linux 的初始化进程,它会忽略任何信号。
SIGKILL 通常作为最后杀死进程的信号,常用于 SIGTERM 没有响应时发送给进程。
SIGPIPE:当尝试写入进程管道时发现管道未连接且无法写入时发送给进程。
SIGPOLL:当在明确监视的文件描述符上发生事件时发送此信号。
SIGRTMIN 至 SIGRTMAX:这些是实时信号。
SIGQUIT:当用户请求退出进程并执行核心转储时,由其控制终端发送给进程。
SIGSEGV:当进程做出无效的虚拟内存引用或分段错误时发送给进程。
SIGSTOP:指示操作系统终止进程以便以后恢复。
SIGSYS:当错误参数传递给系统调用时发送给进程。
SIGTERM:此信号发送给进程以请求终止。与 SIGKILL 不同,此信号可以被进程捕获或忽略,允许进程执行良好的终止,释放资源并在适当时保存状态。SIGTERM 与 SIGINT 几乎相同。
SIGTSTP:由其控制终端发送给进程,以请求终端停止。
SIGTTIN 和 SIGTTOU:当进程在后台尝试从 tty 读取或写入时分别发送给进程。
SIGTRAP:在发生异常或 trap 时发送给进程。
SIGURG:当套接字具有可读取的紧急或带外数据时发送给进程。
SIGUSR1 和 SIGUSR2:这些信号发送给进程以指示用户定义的条件。
SIGXCPU:当进程耗尽 CPU 的时间超过某个用户可设置的预定值时发送给进程。
SIGXFSZ:当进程生成的文件大小超过最大允许值时发送给进程。
SIGWINCH:当其控制终端更改大小(窗口更改)时发送给进程。
SIGHUP:当用户终端连接(正常或非正常)结束时发出,通常在终端的控制进程结束时通知同一 session 内的各个作业。这时它们与控制终端不再关联。登录 Linux 时,系统会为登录用户分配一个终端(Session)。在这个终端运行的所有程序,包括前台进程组和后台进程组,一般都属于这个 Session。当用户退出 Linux 登录时,前台进程组和后台有对终端输出的进程将会收到 SIGHUP 信号。默认操作是终止进程,因此前台进程组和后台有终端输出的进程就会中止。不过,进程可以捕获这个信号,比如 wget 可以捕获 SIGHUP 信号并忽略它,这样即使退出了 Linux 登录,wget 也能继续下载。此外,对于与终端脱离关系的守护进程,这个信号用于通知它重新读取配置文件。
# linux
# 操作系统
# 标准库
# red
# igs
# Session
# 继承
# signal
# 事件
# 异步
# unix
# 发送给
# 可以选择
# 被杀
# 结束时
# 配置文件
# 由其
# 这一
# 就会
# 是在
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel怎么使用artisan命令缓存配置和视图
Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程
HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】
php结合redis实现高并发下的抢购、秒杀功能的实例
Laravel如何实现API版本控制_Laravel版本化API设计方案
如何在阿里云完成域名注册与建站?
Android中Textview和图片同行显示(文字超出用省略号,图片自动靠右边)
Windows10电脑怎么设置虚拟光驱_Win10右键装载ISO镜像文件
如何自定义建站之星网站的导航菜单样式?
Laravel如何使用Vite进行前端资源打包?(配置示例)
Laravel如何处理JSON字段_Eloquent原生JSON字段类型操作教程
DeepSeek是免费使用的吗 DeepSeek收费模式与Pro版本功能详解
简单实现Android文件上传
详解jQuery停止动画——stop()方法的使用
学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?
Laravel怎么进行数据库事务处理_Laravel DB Facade事务操作确保数据一致性
VIVO手机上del键无效OnKeyListener不响应的原因及解决方法
谷歌Google入口永久地址_Google搜索引擎官网首页永久入口
Android实现代码画虚线边框背景效果
Chrome浏览器标签页分组怎么用_谷歌浏览器整理标签页技巧【效率】
JavaScript Ajax实现异步通信
php静态变量怎么调试_php静态变量作用域调试技巧【解答】
Python数据仓库与ETL构建实战_Airflow调度流程详解
Laravel如何使用withoutEvents方法临时禁用模型事件
Laravel如何获取当前用户信息_Laravel Auth门面获取用户ID
免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?
EditPlus中的正则表达式 实战(2)
mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?
Python并发异常传播_错误处理解析【教程】
音响网站制作视频教程,隆霸音响官方网站?
如何在香港免费服务器上快速搭建网站?
夸克浏览器网页跳转延迟怎么办 夸克浏览器跳转优化
如何在VPS电脑上快速搭建网站?
Laravel如何实现文件上传和存储?(本地与S3配置)
怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?
SQL查询语句优化的实用方法总结
千库网官网入口推荐 千库网设计创意平台入口
Laravel怎么写单元测试_PHPUnit在Laravel项目中的基础测试入门
javascript中闭包概念与用法深入理解
大同网页,大同瑞慈医院官网?
Win11怎么更改系统语言为中文_Windows11安装语言包并设为显示语言
百度输入法ai面板怎么关 百度输入法ai面板隐藏技巧
Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】
Win11摄像头无法使用怎么办_Win11相机隐私权限开启教程【详解】
如何挑选最适合建站的高性能VPS主机?
Laravel怎么处理异常_Laravel自定义异常处理与错误页面教程
如何生成腾讯云建站专用兑换码?
Laravel如何安装使用Debugbar工具栏_Laravel性能调试与SQL监控插件【步骤】
如何快速登录WAP自助建站平台?
佛山企业网站制作公司有哪些,沟通100网上服务官网?

