0
点赞
收藏
分享

微信扫一扫

【Linux】信号简介与触发信号的几种方式

高子歌 2023-10-06 阅读 44
linux学习

相信大家或多或少都听说过信号这一概念,这篇博客将为大家讲解一些信号方面的基础知识

信号简介

定义Linux操作系统中重要的消息机制
功能主要被用于进程干预处置,大多数信号的作用是杀死或挂起进程,只有少部分的信号不是用来杀死或挂起进程
个数64个,可通过命令 kill -l 来查看系统支持的信号

关于信号的一些小秘密

在前面的内容中,我们说过,可以通过命令 kill -l 来查看系统支持的信号

在这个图片中,我们可以发现两个有趣的地方

系统中触发信号的几种方式

1.终端组合按键触发信号

相信大家或多或少地都在终端中用过CTRL+C来杀死进程,其实它的实现原理就是:当你按下该组合按键时,就会向目标进程发送2号信号—SIGINT,然后操作系统杀死该进程

CTRL+\ 也是同理,触发的是3号信号—SIGQUIT,作用同样是杀死进程,会显示“退出(核心已转储)”字样

CTRL+Z,触发的是20号信号—SIGTSTP来挂起终端进程到后台

2.命令触发信号

这个大家也很常用,kill  -signo  pid  #向任意目标进程发送任意信号

signo——信号编号

3.函数触发信号

有三个比较常用的函数,如下所示:

#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<signal.h>

int main(int argc , char** argv)
{
	if(argc < 3)
	{
		printf("参数输入过少,请检查!\n");
		exit(0);
	}
	kill(atoi(argv[2]) , atoi(argv[1]));
	printf("进程已杀死!\n");
	exit(0);
}

4.硬件异常产生信号

常见的有以下三种情况:

但要注意的是,无论进程是否异常,只要接收到杀死信号就会被杀死

5.软条件触发产生信号

常见的有以下两种情况:

以上就是本篇博客的全部内容了,大家有什么地方没有看懂的话,可以在评论区留言给我,咱要力所能及的话就帮大家解答解答

今天的学习记录到此结束啦,咱们下篇文章见,ByeBye!

举报

相关推荐

0 条评论