说明
  本文章旨在总结备份、方便以后查询,由于是个人总结,如有不对,欢迎指正;另外,内容大部分来自网络、书籍、和各类手册,如若侵权请告知,马上删帖致歉。
  QQ 群 号:513683159 【相互学习】
内容来源
  《Linux系统编程》、《Linux网络编程》、《Unix环境高级编程》

目录

  • 一、概念:
  • 二、 查看所有信号:
  • 三、信号说明:
  • 四、相关函数函数:
  • 五、示例实践:

一、概念:

  1️⃣信号概念
    软件中断,用于在一个或多个进程之间传递异步信号,即通知进程已发生某种情况的一种技术。
    Linux系统中定义了一系列的信号,可由内核产生,也可由系统中的其他进程产生,只要这些进程有足够的权限。
  2️⃣进程处理信号的三种选择:
    ①忽略该信号。(除SIGKILLSIGSTOP信号外)
    ②按系统默认方式处理(除0以外默认终止+core)。详细可看:Unix系统信号表
    ③捕捉信号调用回调函数。
  3️⃣键盘产生信号方式:
    ①中断键:Ctrl+CDelete
    ②退出键:Ctrl+\
  4️⃣信号集
    用于表示多个信号,数据类型:sigset_t
  5️⃣信号屏蔽字
    无法决定信号什么时候来,但可通过信号屏蔽字决定什么时候可以被响应。
    即:一个进程的信号屏蔽字规定了当前阻塞而不能递送给该进程的信号集。

二、 查看所有信号:

  Shell 命令 :kill -l, 列出所有的信号,如下所示:

xsndz@Linux:~$ 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

  0️⃣不存在编号0的信号,常称为空信号。
  1️⃣ 1) ~ 33)标准信号SIG+专用名
  2️⃣34) ~ 64)实时信号SIG+RTMIN+数字 或 SIG + RTMAX+数字
  PS:
    进程可以屏蔽掉大多数的信号,除了SIGSTOPSIGKILL
      ①SIGSTOP信号:使一个正在运行的进程暂停,
      ②SIGKILL信号:使正在运行的进程退出。
    进程可选择系统的默认方式处理信号,也可选择自己的方式处理产生的信号。
    信号之间不存在相对的优先权,系统也无法处理同时产生的多个同种的信号,也就是说,进程不能分辨它收到的是1个或者是42个SIGCONT信号。

三、信号说明:

Unix系统信号表(信号说明及默认动作)

四、相关函数函数:

【Linux】函数简介篇——信号相关函数
signal()——信号截取【man 2 signal】
kill()——将信号发送给进程/进程组【man 2 kill】
raise()——允许向进程自身发送信号【man 3 raise】
alarm()——向当前进程发送SIGALRM信号【man 2 alarm】
pause()——挂起等待信号打断【man 2 pause】
abort()——人为制造异常【man 3 abort】
【Linux】函数简介篇——信号集
sigemptyset()—— 将一个信号集的内容清空
sigfillset()——将一个信号集的置为全集
sigaddset()——在某集合中添加某个信号
sigdelset()——在某集合中删除某个信号
sigismember()——在某集合中是否存在某个信号

sigprocmask()——检测或更改其信号屏蔽字
sigpending()——取出pending集状态
sigaction() —— 检查或更改信号动作
sigsetjmp()、siglongjmp()—— 信号处理程序中进行非局部转移
sigsuspend()——等待信号

五、示例实践:

【Linux】函数示例篇——signal(附前后台切换)
【Linux】函数示例篇——alarm()与pause()
【Linux】函数示例篇——信号集相关函数

概念篇——信号与信号集相关推荐

  1. Linux网络编程 | 信号 :信号函数、信号集、统一事件源 、网络编程相关信号

    文章目录 信号函数 信号集 统一事件源 网络编程相关信号 Linux 进程信号:信号的概念.生命周期.产生流程.阻塞 在半年前我写过一篇博客介绍了Linux中信号的概念以及处理流程,这次再来深入的讲一 ...

  2. 【B站视频笔记】linux 进程间通信(ipc)信号(软中断信号)signal库函数、可靠信号和不可靠信号、信号集sigprocmask(信号掩码、信号递达Delivery、信号未决Pending)

    [视频教程]Linux信号详解(可靠信号.不可靠信号.阻塞信号.信号处理函数) [博文]Linux信号 文章目录 背景 课程笔记 一.如何让程序在后台运行 1.加"&"符号 ...

  3. Linux 进程信号:信号的概念、生命周期、产生流程、阻塞

    信号的概念 信号的生命周期 信号的阻塞 信号的概念 信号 信号是一个软中断.操作系统通过信号通知某个进程发生了某件事件,然后中断这个进程当前操作,让它优先去处理这个事件. 我们在linux下常用的ki ...

  4. 【Linux系统编程学习】信号、信号集以其相关函数

    此为牛客Linux C++和黑马Linux系统编程课程笔记. 文章目录 0. 信号的概念 1. Linux信号一览表 2. 信号相关函数 3. kill函数 4. raise函数 5. abort函数 ...

  5. Linux进程信号(产生、保存、处理)/可重入函数概念/volatile理解/SIGCHLD信号

    首先区分一下Linux信号跟进程间通信中的信号量,它们的关系就犹如老婆跟老婆饼一样,没有一毛钱的关系. 信号的概念 信号的概念:信号是进程之间事件异步通知的一种方式,属于软中断.比如:红绿灯是一种信号 ...

  6. 正交函数集与信号在正交函数集上的分解

    上一篇信号的定义 脉冲函数与阶跃函数 脉冲分解中提到了信号分解,本文继续整理正交函数集与信号在正交函数集上的分解 文章目录 正交函数集 信号分解的物理意义 正交集合 函数点积 正交函数 正交集定义 正 ...

  7. 疫情下海外城市轨道交通信号系统项目集管理实践

    摘要:疫情不仅会影响海外城市轨道交通信号系统项目集的管理,而且会影响其最终收益.因此,信号系统企业在管理海外项目集时,必须科学有效地应对疫情,降低不良影响,获得高收益,从而稳定自身在海外的市场和自身的 ...

  8. 信号系统 | 信号的概念与常用信号

    信号的本质是函数,因此信号处理方法具有普适性,应用领域非常广泛.本篇介绍信号的基本概念以及一些典型的信号,主要参考奥本海姆的经典教材<信号与系统>,微信搜索公众号PurePlay,后台回复 ...

  9. Linux信号 五 信号挂起与信号掩码操作接口集

    A signal may be blocked, which means that it will not be delivered until it is later unblocked. Betw ...

最新文章

  1. 角度编码器 ST-3806-15-RS
  2. excel单元格斜线_如何用EXCEL做一套田字格模板?在家给小孩练习写字
  3. Python+Django+Ansible Playbook自动化运维项目实战:资产管理
  4. 使用 Excel 读取 SAP ABAP CDS View 通过 ODBC 暴露出来的数据
  5. ubuntu安装 rust nightly_Rust 嵌入式开发环境搭建指南 (一):让世界闪烁吧
  6. llinux mysql_linux下安装mysql
  7. 绿屏后再现“粉屏”门!大量网友投诉iPhone 13粉屏问题 客服:非硬件问题
  8. C语言libcurl:Uses the CURLINFO_TLS_SESSION data.
  9. IOS高级开发之多线程(五)NSOperation 2
  10. android 判断资源是否使用6,android-download-manager – Android 6获取下载文件的路径
  11. 【codecombat】 试玩全攻略 第十六关 近战
  12. Java 23 种设计模式概述 与 简单工厂模式
  13. 【原创】大叔案例分享(4)定位分析--见证scala的强大
  14. redis分布式锁学习总结
  15. 基于企业服务总线的主数据管理系统(MDM)集成方案
  16. NFC技术 (二) -硬件设计
  17. 数据分析师细分岗位方向有哪些?
  18. EPC 的RFID 标准体系
  19. python求矩阵的秩_python – 计算所有子矩阵有多少个矩阵具有满秩
  20. python nlp文本摘要_NLP(十一) 提取文本摘要

热门文章

  1. 一大波科研交流群出现,种类齐全,名额有限,请大家抓紧入坑!
  2. 行亦谦ACM自闭之旅第五周
  3. 科技云报道:大小巨头涌入赛道,隐私计算迎来商业落地元年
  4. 偏瘫康复医院,成都顾连康复医院,案例分享
  5. 31页大数据治理管理平台解决方案合集
  6. beamer使用之ppt中插入四张图像,及中文
  7. 手把手教你Photoshop中的图层混合模式(二)
  8. xform的应用——MEL
  9. 快来看看阿里巴巴的常用面试题
  10. 发布企业版应用遇到“无法安装应用程序,证书无效”、“无法下载应用程序,此时无法安装”