Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【Linux】详解信号产生的方式

【Linux】详解信号产生的方式

作者头像
用户10923276
发布于 2024-05-03 00:36:57
发布于 2024-05-03 00:36:57
25900
代码可运行
举报
运行总次数:0
代码可运行

一、kill命令

在命令行中通过kill -数字 pid指令可以给指定进程发送指定信号。这里说明一下几个常见的信号:

  • SIGINT(2号信号):中断信号,通常由用户按下Ctrl+C产生,用于通知进程终止。
  • SIGQUIT(3号信号): 终止进程并产生core文件,用于后续分析程序崩溃时的状态和数据。
  • SIGKILL(9号信号):强制终止信号,不能被进程捕获或阻塞,用于强制结束进程。
  • SIGSTOP(20号信号):停止信号,使进程停止执行,直到收到SIGCONT信号。
  • SIGCONT(18号信号):继续信号,使之前被SIGSTOP信号停止的进程继续执行。
  • SIGALRM(14号信号):闹钟信号,当由alarm函数设置的定时器时间已经超过时产生。

如果想查阅更多的信号,可以使用man 7 signal指令在官方手册中进行查找。

二、键盘产生信号

不同的操作系统产生信号的键盘组合键可能不同,这里说的是ubuntu系统下。常见的键盘产生的信号有:

ctrl + c:向当前进程发送2号信号。 ctrl + \:向当前进程发送3号信号。 ctrl + z:向当前进程发送20号信号。

三、系统调用产生信号

3.1、kill系统调用函数

二号手册查询。pid就是进程pid,指要向哪一个进程发信号,sig指要发送几号命令。

3.2、raise系统调用函数

三号手册查询。raise就是一个用来给进程自己发信号的系统调用函数。sig指要发送哪一个信号。

3.3、abort系统调用函数

三号手册。abort系统调用函数就是一个用来给进程自己发送6号信号的系统调用函数。

四、软件条件产生信号

在操作系统中,由软件条件产生的信号通常指的是通过某种软件操作或系统状态触发的信号。这些信号用于通知进程某个特定事件已经发生。下面会说明常见的软件条件:

4.1、管道通信

【Linux】匿名管道实现简单进程池-CSDN博客之前在这一篇博客中,我已经介绍了进程间使用管道通信的四种情况和五种特性,其中在第四种情况中,我曾经说过,读端关闭了,操作系统就会发送信号直接杀死进行写入的进程,因为没有读端写入也就没有了意义。此时操作系统给写端进程发送的正是SIGPIPE(十三号信号)直接终止写端进程。

4.2、时钟信号

调用alarm函数可以设定一个闹钟,也就是告诉内核在seconds秒之后给当前进程发SIGALRM信号, 该信号的默认处理动作是终止当前进程。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <unistd.h>
unsigned int alarm(unsigned int second);

second参数设置的是经过多少秒后向该进程发送时钟信号函数的返回值是0或者是以前设定的闹钟时间还余下的秒数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <iostream>
#include <unistd.h>
#include <signal.h>
using namespace std;

void handler(int signo)
{
    cout << "hello signal" << endl;
}

int main()
{
    signal(SIGALRM, handler);
    //5秒后闹钟响起,执行自定义方法
    alarm(5);
    while (true)
    {
        cout << "I am a process! my pid is " << getpid() << endl;
        sleep(1);
    }
    
    return 0;
}

经过5秒,我们果然看到了进程收到了闹钟信号,执行了自定义方法。

但如果我们前一个闹钟还没响我们又设了一个闹钟,新设置的闹钟先响了这时alarm函数的返回值就是以前设定的闹钟时间还余下的秒数。假设我此时先设置了一个500秒以后才响的闹钟,在自定义函数中又设置了5秒以后响的闹钟,然后在命令行中给这个进程提前发送闹钟信号。看代码和结果:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <iostream>
#include <unistd.h>
#include <signal.h>
using namespace std;

void handler(int signo)
{
    cout << "hello signal" << endl;
    //又设置了一个5秒后响的闹钟
    unsigned int n = alarm(5);
    cout << "还剩" << n << "秒" << endl;
}

int main()
{
    signal(SIGALRM, handler);
    alarm(500);
    while (true)
    {
        cout << "I am a process! my pid is " << getpid() << endl;
        sleep(1);
    }
    
    return 0;
}

此时在命令行中提前发送闹钟信号:

我们可以看到第二个设置的闹钟的返回值为490,也就是上一个闹钟还没有跑完的时间。之后就是每隔5秒闹钟响一次。

五、异常产生信号

常见的进程出异常产生信号有除0异常,操作系统会向进程发送8号信号(SIGFPE)。野指针,操作系统会向进程发送11号信号(SIGSEGV)。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-05-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
解读 | 数据分析领域七大热门职业
基于这个定义,我们可以进一步得出:数据可以理解为是收集到的任何信息,可以使用、进一步处理和分析以获得见解。而且通常与计算机联系在一起,因为数据通常是在计算机中生成和存储的,然而数据存在的时间比我们想象的要长得多。
CDA数据分析师
2022/04/15
4050
解读 | 数据分析领域七大热门职业
大数据工程师的日常工作内容是干嘛?
有朋友留言问:面试数据分析相关工作,面试官让我说说数据工程师和数据分析师的区别在哪里,怎么回答?
猴子数据分析
2021/07/07
7650
大数据相关的职业岗位及主要工作内容
大数据正在改变全球商业运作方式,随着对合格大数据人才需求的增加,大数据行业的发展空间和待遇也越来越好,很多想转行大数据的入门学习者,不太清楚大数据的相关的岗位有哪些,今天加米谷大数据就来说个大概。
加米谷大数据
2019/04/19
6440
大数据相关的职业岗位及主要工作内容
大数据工程师,数据工程师,数据分析师,数据科学家哪一个适合你?
在数据行业,我们经常会遇到形形色色的职位:大数据工程师、数据工程师、数据分析师、数据科学家,甚至还有机器学习工程师。如此繁多的岗位,有时难免让人眼花缭乱、摸不着头脑。今天,我结合从事 Databend 后开始从 OLTP 渗透着大数据圈子4年+对这些职位的认识做一个总结,让我们一起理清这些职位的职责和学习要点,帮你找到属于自己的方向。
阿炳数记
2025/06/06
1490
大数据工程师,数据工程师,数据分析师,数据科学家哪一个适合你?
探秘|数据学科受企业追捧 这三大职业吸金力强
考虑到众多企业开始意识到数据的社会与经济价值,而处理相关数据任务亦存在着巨大挑战,因此合格的数据科学家开始成为人才市场上的热门资源。 数据科学并不属于什么全新学科,但其最近却随着大数据技术的快速发展而
灯塔大数据
2018/04/08
7500
探秘|数据学科受企业追捧 这三大职业吸金力强
数据科学家、数据分析师、数据挖掘工程师、数据工程师,你分的清楚吗?
数据科学家(Data scientist)的叫法来自国外,广义上它是对从事数据分析和数据挖掘从业人员的一个泛称,它只是一个头衔,并不是一个职位。狭义上,数据科学家一般是指行业里面的领军人物和顶尖科学人才,如百度前首席数据科学家吴恩达。 在人才市场上我们通常可以看到的是后三个职位(数据分析师、数据挖掘工程师、数据工程师),接下里我们就区分一下这几个职位的相同点和不同点。首先看下企业对这三个职位的要求和描述。 职位和能力 下面是阿里对这3个职位的要求和描述: 数据分析师 岗位描述: 1、独立负责业务数
小莹莹
2018/04/19
2.2K0
数据科学家、数据分析师、数据挖掘工程师、数据工程师,你分的清楚吗?
【热点】大数据人才“求贤若渴”
在推进大数据应用的过程中,企业主要面临以下三方面的困难,一是认识上的不足,很多人并不知道大数据是什么,因此也就无法知道如何正确地使用大数据工具;二是投入上的不足,大数据的应用可能需要相当大的投入,一般的企业可能很难承受;三是大数据人才的匮乏将制约大数据应用的发展。 大数据相关人才的欠缺将会成为影响大数据市场发展的一个重要因素。据Gartner预测,到2015年,全球将新增440万个与大数据相关的工作岗位,且会有25%的组织设立首席数据官职位。大数据的相关职位需要的是复合型人才,能够对数学、统
小莹莹
2018/04/20
5980
入门选手必备 | 大数据分析学习之路
目录: 大数据分析的五个基本方面 如何选择适合的数据分析工具 如何区分三个大数据热门职业 从菜鸟成为数据科学家的 9步养成方案 从入门到精通—快速学会大数据分析 一、大数据分析的五个基本方面 1.可视化分析 大数据分析的使用者有大数据分析专家,同时还有普通用户,但是他们二者对于大数据分析最基本的要求就是可视化分析,因为可视化分析能够直观的呈现大数据特点,同时能够非常容易被读者所接受,就如同看图说话一样简单明了。 2.数据挖掘算法 大数据分析的理论核心就是数据挖掘算法,各种数据挖掘的算法基于不同的数据类型和格
CDA数据分析师
2018/02/13
8830
数据科学行业的8个关键角色:职责与技能
作者:Martijn Theuwissen 编译:王方思 姚佳灵 黄念 校对:佘彦遥 王靖 席雄芬 前言 第二届世界互联网大会的召开,将大数据战略推向了又一高潮,许多与数据相关的职位如雨后春笋般涌现,数据科学家、数据分析师、数据架构师、统计学家、数据库管理员、商业分析师和数据分析经理等。但是,许多业界人士表示分不清这些职位的区别,企业在招聘人员时,进行职位描述与岗位职责编写时略显混乱,应聘者在应聘这些职位时也不清楚这些这位的进入门槛。今天,大数据文摘将向大家推出8张数据科学相关职位信息图以及1张跟这些职
大数据文摘
2018/05/22
5800
数据科学领域的职位划分以及职责技能
随着数据科学领域的招聘信息越来越多,范围也越来越广.Datacamp根据最新的数据科学相关招聘信息,全面的了解各个行业之间数据科学领域每个职位角色之间的差异,以及所赋予的工作职责。 最主要分为以下几个
小莹莹
2018/04/23
1.3K0
数据科学领域的职位划分以及职责技能
【数据科学】数据科学领域的职位划分以及职责技能
随着数据科学领域的招聘信息越来越多,范围也越来越广.Datacamp根据最新的数据科学相关招聘信息,全面的了解各个行业之间数据科学领域每个职位角色之间的差异,以及所赋予的工作职责。 最主要分为以下几个
陆勤_数据人网
2018/02/27
9160
【数据科学】数据科学领域的职位划分以及职责技能
【职业】大数据岗位更看重学历还是工作经验?
回答这个问题之前还是让我们看一段PPV课网站上的一段真实对话: Q:请问从事大数据这行,硕士学历有必要么? A:oh,如果有条件,最好可以上到硕士,但不是说必须如此,大数据相关职位对行业知识和项目经验
小莹莹
2018/04/25
1.3K0
【职业】大数据岗位更看重学历还是工作经验?
大数据人才市场薪酬报告(2015一季度) 附PDF下载
作者:cherrie 2015年3月,白宫经任命DJ Patil作为全国第一个首席数据科学家。这位前PayPal和eBay的执行官,来到白宫之后有了新的任务:帮助美国政府最大限度的进行他们对大数据的投资,并围绕政府机构如何更好使用大数据给出建议。 美国政府正在用实际行动告诉大家,政府的工作已经不再是你印象中的那样了。过去的政府里,计算机还只是一个简单的办公工具,甚至被简单的当成笔和纸的替代品。但是今天,政府们却已经能迅速意识到他们需要新的领导,带领大家充分利用起他们的数据。 还有很多你没有注意到的细
小莹莹
2018/04/23
7740
大数据人才市场薪酬报告(2015一季度) 附PDF下载
【数据科学】如何区分大数据下的三大利器:数据科学家,数据工程师与数据分析师。
与其他一些相关工程职位一样,数据科学家的影响力与互联网同进同退。数据工程师和数据分析师与数据科学家携手共同完成这幅“大数据时代”巨作。他们共同努力拟定数据平台要求,基础和高级算法,提供数据分析和展示所需的可视化工具,并将价值创造以易于理解,富于见解的方式反馈给其他部门。 三者之间的定义又是如何界定的呢? 数据科学家是什么样一个存在呢? 通常情况下,数据科学家有数学或物理方面的高等学位。有博士学位的情况并不少见,硕士学位仅是一个前提条件。数据科学家精通统计建模以及如何构建与定制高级数学算法。这既在他们专业范围
陆勤_数据人网
2018/02/26
9010
大数据行业5个职位方向指南
 大数据已不再是新词,企业也越来越需要大数据高端人才。这给想要从事大数据方面工作的人员提供了难得的职业机遇。那么在大数据行业,都有什么职位可以选择呢?来看看大数据行业的5个职位方向指南吧!   E
用户1289394
2018/02/28
9570
大数据行业5个职位方向指南
数据科学行业的8个关键角色:职责与技能
第二届世界互联网大会的召开,将大数据战略推向了又一高潮,许多与数据相关的职位如雨后春笋般涌现,数据科学家、数据分析师、数据架构师、统计学家、数据库管理员、商业分析师和数据分析经理等。但是,许多业界人士表示分不清这些职位的区别,企业在招聘人员时,进行职位描述与岗位职责编写时略显混乱,应聘者在应聘这些职位时也不清楚这些这位的进入门槛。今天将向大家推出8张数据科学相关职位信息图以及1张跟这些职位有关的薪酬信息图,带你了解数据科学行业的进入门槛与岗位职责。
IT阅读排行榜
2018/08/14
5630
那些数据工作中的角色
数据工作中有一类非常重要的角色,那就是数据分析师。为什么这个角色这么重要呢?因为要是没有这个角色,不管一个企业中的数据管理做得有多么好都没用,都无法带来实际的价值。这些数据就像是藏在海底的石油,而数据分析师就是开采海底石油的油井设备。要想让石油用于汽车轮船,需要通过这些设备先将海底的石油抽取出来,经过加工处理,提纯。
ThoughtWorks
2021/07/02
5420
解析大数据分析行业的现状与前景:全球视角下的中国力量
在一个充满数据的时代,大数据分析已经成为推动各行各业发展的核心动力。最近,一位来自其他行业的前辈向我咨询大数据分析行业的从业情况。为了更好地回答他的疑问,我决定写一篇文章,结合全球视角,重点介绍中国大数据分析行业的现状与未来前景。希望通过这篇文章,能够为有志于进入大数据分析领域的朋友们提供一些有价值的见解。
theskylife
2024/07/29
3.3K0
CDA数据分析师认证3个级别对应的薪资标
从统计到数据分析,从数据挖掘到大数据,数据科学逐渐成为了一门新兴的学科,数据分析师也逐渐成为了一门抢手的职业。如何成为数据分析师?如何入行数据分析?教育是一个难题!在这个行业中,是否有高质量的证书?拿到证书后能找到多少薪资的工作?今天,我们来分析分析作为这个行业中的老牌,CDA数据分析师的等级标准。
CDA数据分析师
2018/12/07
1.9K0
CDA数据分析师认证3个级别对应的薪资标
详解:大数据分析的学习之路
  大数据分析的使用者有大数据分析专家,同时还有普通用户,但是他们二者对于大数据分析最基本的要求就是可视化分析,因为可视化分析能够直观的呈现大数据特点,同时能够非常容易被读者所接受,就如同看图说话一样简单明了。
IT阅读排行榜
2018/08/16
5770
详解:大数据分析的学习之路
推荐阅读
相关推荐
解读 | 数据分析领域七大热门职业
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验