1、Linux信号类型

信号(Signal):信号是在软件层次上对中断机制的一种模拟,通过给一个进程发送信号,执行相应的处理函数。

进程可以通过三种方式来响应一个信号:

1)忽略信号,即对信号不做任何处理,其中有两个信号不能忽略:SIGKILL及SIGSTOP。

2)捕捉信号。

3)执行缺省操作,Linux对每种信号都规定了默认操作。

Linux究竟采用上述三种方式的哪一个来响应信号呢?取决于传递给响应的API函数。

Linux支持的信号有:

编号

信号名称

缺省动作

描述

1

SIGHUP

终止

终止进程,挂起

2

SIGINT

终止

键盘输入中断命令,一般是CTRL+C

3

SIGQUIT

CoreDump

键盘输入退出命令,一般是CTRL+\

4

SIGILL

CoreDump

非法指令

5

SIGTRAP

CoreDump

trap指令发出,一般调试用

6

SIGABRT

CoreDump

abort(3)发出的终止信号

7

SIGBUS

CoreDump

非法地址

8

SIGFPE

CoreDump

浮点数异常

9

SIGKILL

终止

立即停止进程,不能捕获,不能忽略

10

SIGUSR1

终止

用户自定义信号1,像Nginx就支持USR1信号,用于重载配置,重新打开日志

11

SIGSEGV

CoreDump

无效内存引用

12

SIGUSR2

终止

用户自定义信号2

13

SIGPIPE

终止

管道不能访问

14

SIGALRM

终止

时钟信号,alrm(2)发出的终止信号

15

SIGTERM

终止

终止信号,进程会先关闭正在运行的任务或打开的文件再终止,有时间进程在有运行的任务而忽略此信号。不能捕捉

16

SIGSTKFLT

终止

处理器栈错误

17

SIGCHLD

可忽略

子进程结束时,父进程收到的信号

18

SIGCONT

可忽略

让终止的进程继续执行

19

SIGSTOP

停止

停止进程,不能忽略,不能捕获

20

SIGSTP

停止

停止进程,一般是CTRL+Z

21

SIGTTIN

停止

后台进程从终端读数据

22

SIGTTOU

停止

后台进程从终端写数据

23

SIGURG

可忽略

紧急数组是否到达socket

24

SIGXCPU

CoreDump

超出CPU占用资源限制

25

SIGXFSZ

CoreDump

超出文件大小资源限制

26

SIGVTALRM

终止

虚拟时钟信号,类似于SIGALRM,但计算的是进程占用的时间

27

SIGPROF

终止

类似与SIGALRM,但计算的是进程占用CPU的时间

28

SIGWINCH

可忽略

窗口大小改变发出的信号

29

SIGIO

终止

文件描述符准备就绪,可以输入/输出操作了

30

SIGPWR

终止

电源失败

31

SIGSYS

CoreDump

非法系统调用

CoreDump(核心转储):当程序运行过程中异常退出时,内核把当前程序在内存状况存储在一个core文件中,以便调试。

Linux支持两种信号:

一种是标准信号,编号1-31,称为非可靠信号(非实时),不支持队列,信号可能会丢失,比如发送多次相同的信号,进程只能收到一次,如果第一个信号没有处理完,第二个信号将会丢弃。

另一种是扩展信号,编号32-64,称为可靠信号(实时),支持队列,发多少次进程就可以收到多少次。

信号类型比较多,我们只要了解下,记住几个常用信号就行了,红色标记的我觉得需要记下。

发送信号一般有两种情况:

一种是内核检测到系统事件,比如键盘输入CTRL+C会发送SIGINT信号。

另一种是通过系统调用kill命令来向一个进程发送信号。

2、kill命令

kill命令发送信号给进程。

命令格式:kill [-s sigspec | -n signum | -sigspec] pid | jobspec ...

kill -l [sigspec]

-s  # 信号名称

-n  # 信号编号

-l  # 打印编号1-31信号名称

Shell 信号发送与捕捉相关推荐

  1. linux 信号 core,Shell 信号发送与捕捉

    原标题:Shell 信号发送与捕捉 作者:李振良OK 1.Linux信号类型 信号(Signal):信号是在软件层次上对中断机制的一种模拟,通过给一个进程发送信号,执行相应的处理函数. 进程可以通过三 ...

  2. 第九章 Shell信号发送与捕捉

    9.1 Linux信号类型 信号(Signal):信号是在软件层次上对中断机制的一种模拟,通过给一个进程发送信号,执行相应的处理函数. 进程可以通过三种方式来响应一个信号: 1)忽略信号,即对信号不做 ...

  3. sigquit信号默认忽略吗_老妹儿,你真的搞懂了 Shell 信号吗?

    作者:李振良OK链接:https://blog.51cto.com/lizhenliang/1899347 哈喽,各位新来的小伙伴们,大家好!由于公众号做了改版,为了保证公众号的资源能准时推送到你手里 ...

  4. linux系统发送信号的系统调用是,linux系统编程之信号:信号发送函数sigqueue和信号安装函数sigaction...

    信号发送函数sigqueue和信号安装函数sigaction sigaction函数用于改变进程接收到特定信号后的行为. sigqueue()是比较新的发送信号系统调用,主要是针对实时信号提出的(当然 ...

  5. qt信号发送间隔短而槽耗时多_Qt信号槽问题汇总 - osc_9q1dp3jk的个人空间 - OSCHINA - 中文开源技术交流社区...

    1. 发送一次信号,调用多次槽函数问题 在同一个类中,多次链接QObject::connect(sender, SIGNAL(signalSender(QString, int)), receiver ...

  6. Linux信号 三 信号发送接口集合

    信号发送接口包括raise,kill,killpg,tkill,tgkill,pthread_kill,sigqueue等. 1. raise() /*** raise用于向进程自身发送信号* 成功返 ...

  7. 查看当前服务器中的所有的topic,创建topic,删除topic,通过shell命令发送消息,通过shell消费消息,查看topic详情,对分区数进行修改

    一. Kafka常用操作命令  查看当前服务器中的所有topic [root@hadoop3 kafka]# bin/kafka-topics.sh --list --zookeeper hadoo ...

  8. linux普通用户发送信号,Linux信号发送与作业控制

    前言 Linux中进程间通信又称为IPC(Inter process communication),大致上可以分为这么几类:消息队列(message queue),旗语(semerpore),共享内存 ...

  9. ping端口怎么ping_英雄联盟手游ping信号怎么发送 ping信号发送方法介绍_游戏攻略...

    伙伴不知道英雄联盟手游ping信号是什么意思?怎么发,在英雄联盟手游中每个信号都是至关重要的,作为一个召唤师不会发信号,那可是一件大事,下面小编就给大家带来<英雄联盟手游>ping信号发送 ...

最新文章

  1. 携程python_Python 携程
  2. Keras 文本预处理 text sequence
  3. 智迪科技携手海通安恒,启动SAP实施项目
  4. 网页静态化和网页伪静态化之间的区别与选择
  5. 【异或运算】 - 交换2个数
  6. x86架构下 CF与OF标志位 带符号和无符号运算 详解
  7. 前端学习(3001):vue+element今日头条管理--项目初始化总结
  8. T-SQL DML学习笔记
  9. 邮件格式转换html,HTML邮件模板 - lenglingx的个人页面 - OSCHINA - 中文开源技术交流社区...
  10. 使用GDAL对HDF数据进行校正
  11. 二十余岁时的社会观(三)
  12. 蓝牙服务器维修理地址,云服务器蓝牙
  13. 系统镜像ISO、GHO、WIM、ESD的区别
  14. ❤️❤️❤️Unity废柴看过来,手把手教你做植物大战僵尸(十七)—— 工程源码下载
  15. C++写文件时覆盖与否的问题
  16. 通用公司信息安全规范
  17. SAP那些事-职业篇-10-顾问最重要的思维方式
  18. InfluxDB学习整理
  19. Unity动画☀️7. 通过MatchTarget匹配跳墙动画、Vector3、获取动画层GetCurrentAnimatorStateInfo(a).IsName(b)
  20. 打开Microsoft Outlook时出现意外错误如何解决?

热门文章

  1. 史上最详细的值传递和引用传递之间区别
  2. php 数组排序 按值,php – 按值排序数组
  3. 双百双新产业项目是什么_投资380亿,广西38个“双百双新”产业项目开竣工
  4. php生成10万个字符串,有什么好的方法可以生成十万条不重复的13位纯数字字符串...
  5. syslog 向内存中缓存_动画:深入浅出从根上理解 HTTP 缓存机制及原理!
  6. docker 拉取oracle_Docker 拉取 oracle 11g镜像配置-Go语言中文社区
  7. python 数组转音频_Python3+将2声道音频,分拆成1声道
  8. 查询linux上调度命令,浅析Linux中crontab任务调度
  9. 查看网卡命令 uefi_大神教你开机进入UEFI模式的方法,非常简单
  10. vb用adodb链接mysql找不到_VB使用ADODB操作数据库的常用方法