linux的基础知识——信号的四要素和kill

1.信号的四要素

\qquad信号的名字;信号的编号;信号的默认处理动作;信号的事件

2.信号相关命令

\qquad查看linux下的所有信号:kill -l;查看信号文档:man 7 signal。一共有64个信号。linux常规信号一览表

 1) 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

3.信号的默认动作

动作意义
Term终止进程
lgn忽略信号
Core终止进程,生成core文件
Stop停止(暂停)进程
Cont继续运行进程

\qquad对于信号的处理,有执行默认动作,忽略和捕捉,其中 9)SIGKILL和 19)SIGSTOP,不允许捕捉和忽略,只能执行默认动作。

4.信号的产生

4.1 终端按键产生信号
按键操作信号说明
ctrl + c2:SIGINT(终止/中断)INT:interrupt
ctrl + z20:SIGTSTP(暂停/停止)T:terminal STP:stop
ctrl + \3:SIGQUIT(退出)
4.2 硬件异常产生信号
异常操作信号
除0操作8:SIGFPE
非法访问内存11:SIGSEGV(段错误)
总线错误7:SIGBUS
4.3 kill函数或者kill命令产生信号
4.3.1 kill命令产生信号
kill -9 10624  // 给进程10624发送9)SIGKILL信号	
4.3.2 kill函数

\qquadint kill(pid_t pid,int sig)
\qquad功能:给指定进程发送指定信号(不一定杀死)
\qquad返回值:成功返回0;失败返回-1
\qquad参数:第一个参数:pid>0,发送信号给指定进程;pid=0,发送信号给与调用kill函数进程属于同一进程组的所有进程;pid<0,取|pid|发送给对应进程组;pid=-1,发送给进程有权发送的系统中的所有进程。 第二个参数:sig不推荐使用数字,建议使用宏名
\qquad举例:调用kill函数,自己把自己杀死

#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>
#include<signal.h>int main()
{int ret = kill(getpid(),SIGKILL);if(ret==-1){perror("kill error!");exit(1);}return 0;
}

5.举例

\qquad创建5个子进程,然后依次杀死

#include<stdio.h>
#include <sys/types.h>
#include <unistd.h>
#include<errno.h>
#include<stdlib.h>
#include <sys/types.h>
#include <signal.h>int main()
{pid_t pid,q[5];int i;for(i=0;i<5;i++){pid = fork();if(pid==-1){perror("fork error!");exit(1);}else if(pid==0){break;}q[i]=pid;}if(i<5){while(1){printf("i am child %d,getpid()=%d\n",i,getpid());sleep(1);}}else{for(i=0;i<5;i++){sleep(2);kill(q[i],SIGKILL);}}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/483435.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot学习笔记(16)----SpringBoot整合Swagger2

Swagger 是一个规范和完整的框架&#xff0c;用于生成&#xff0c;描述&#xff0c;调用和可视化RESTful风格的web服务 http://swagger.io Springfox的前身是swagger-springmvc,是一个开源的API doc框架&#xff0c;可以将我们的Controller接口的方法以文档的形式展现&#xff…

Jeff Dean亲自揭秘谷歌下一代AI架构:通用、稀疏且高效,网友不买帐:毫无新意...

来源&#xff1a;机器之心在这波 AI 浪潮中&#xff0c;人工智能技术经过十几年的爆发式发展&#xff0c;已经在各个领域有着极为广泛的应用&#xff0c;如医疗、科学研究、汽车等。但是随着技术发展的缓慢&#xff0c;以深度学习为代表的人工智能技术瓶颈开始凸显。今年 8 月份…

排序算法笔记(Java)

package datastructure;import java.util.Arrays; import java.util.Scanner;public class Sort {static int len; //声明全局变量&#xff0c;用于记录arr的长度public static void main(String[] args) {Scanner sc new Scanner(System.in);String str sc.nextLine();Strin…

冲刺进度条05

昨天&#xff1a;获取当日天气 今天&#xff1a;继续编写获取当日天气 遇到的困难&#xff1a;解析的json数据转载于:https://www.cnblogs.com/leity/p/10874283.html

计算机网络——时延、时延带宽积、RTT和利用率

1.什么是时延 \qquad数据&#xff08;报文/分组/比特流&#xff09;从网络的一端传送到网络另外一端所需的时间。也叫延迟或者迟延&#xff0c;单位是s 2.时延的种类 2.1 发送时延&#xff08;传输时延&#xff09; \qquad从发送分组的第一个比特算起&#xff0c;到该分组的最…

强人工智能与泛心论

来源&#xff1a;哲社院后台原载于《科学经济社会》2021年第39卷第3期第52~59页作者简介&#xff1a;陈敬坤&#xff0c;1981年1月生。哲学博士&#xff0c;山西大学哲学社会学学院副教授&#xff0c;曾赴比利时布鲁塞尔自由大学、美国匹兹堡大学等作学术访问。研究领域主要为心…

开通博客园

https://www.cnblogs.com/XiaoJ-cs/ 这两天开通了博客园&#xff0c;换了个主题很舒服。 CSDN也会继续更新。

第一章 Linux是什么

Linux是核心与系统调用接口两层中间的操作系统不同硬件的功能函数并不相同&#xff0c;IBM的Power CPU与Inter的x86架构不同&#xff0c;所以同一套操作系统是不能在不同的硬件平台上面运行的。也就是说&#xff0c;每种操作系统都是在他专门的硬件机器上面运行的。不过&#x…

计算机网络——分层结构,协议,接口和服务

1.为什么要分层&#xff1f; \qquad当有两台主机&#xff0c;A向B通过网络发送文件&#xff0c;在发送文件前需要完成这么几件事情&#xff1a;1&#xff09;A必须将数据通信的通路进行激活&#xff1b;2&#xff09;要告诉网络如何识别目的主机B&#xff1b;3&#xff09;A要查…

官宣!全球首富马斯克:创办这所“新大学”!

埃隆马斯克&#xff08;Elon Musk&#xff09;是特斯拉和SpaceX的创始人兼首席执行官。来源&#xff1a;青塔编辑&#xff1a;nhyilin美国《福布斯》杂志10月26日称&#xff0c;得益于特斯拉股价大涨&#xff0c;特斯拉CEO埃隆马斯克的财富跃升至近3000亿美元&#xff0c;不仅是…

虚拟内存管理习题补充

当系统发生抖动&#xff08;thrashing&#xff09;时&#xff0c;可以采取的有效措施是&#xff08; &#xff09;。 Ⅰ&#xff0e;撤销部分进程 Ⅱ&#xff0e;增加磁盘交换区的容量 Ⅲ&#xff0e;提高用户进程的优先级 A、仅Ⅰ B、仅Ⅱ C、仅Ⅲ D、仅Ⅰ&#xff0c; Ⅱ 在…

“传统”遥感遇上AI,会产生怎样的效果?

来源&#xff1a;微信公众号人民网责编&#xff1a;翟巧红编辑&#xff1a;张素玲&#xff1b;作者&#xff1a;龚健雅 中国科学院院士、武汉大学教授&#xff1b;新一轮科技革命和产业变革的大幕早已掀开。作为全球科技竞争的制高点&#xff0c;人工智能已经成为世界主要国家推…

记录一次双系统安装

条件 1、U盘 2、UltraISO软件 官网 3、ISO镜像 ubuntu官网 压缩卷&#xff0c;获得空闲空间安装ubuntu 1、点击winx&#xff0c;进入磁盘管理&#xff0c;选择一个空间够大的硬盘进行分区 2、选择你要压缩的卷&#xff0c;比如D盘&#xff0c;右击&#xff0c;压缩卷&#xff0…

操作系统 —— 内存管理

目录一、思维导图二、内存的基础知识2.1 什么是内存&#xff1f;2.2 存储单元2.3 逻辑地址和物理地址2.4 编译、链接、装入2.4.1 编译2.4.2 链接链接的三种方式 :2.4.3 装入装入的三种方式:三、内存保护四、内存空间的扩充4.1 覆盖与交换4.1.1 覆盖技术4.1.2 交换技术4.2 虚拟内…

【前沿技术】10年内,19个关键技术将改变世界

来源&#xff1a;智能研究院据国外媒体报道&#xff0c;从无人驾驶汽车到机器人工人&#xff0c;在我们熟悉所有这一切之前&#xff0c;未来正迎面走来。根据世界经济论坛全球议程理事会关于《未来软件与社会》的一份报告&#xff0c;到2025年前&#xff0c;很多新兴技术将会达…

计算机网络——TCP/IP参考模型和五层参考模型

1.OSI参考模型和TCP/IP参考模型的对比 \qquad相同点&#xff1a;1)都分层&#xff1b;2&#xff09;都是基于独立的协议栈的概念 &#xff1b;3&#xff09;可以实现异构网络的互联 \qquad不同点&#xff1a;1&#xff09;OSI定义了三点&#xff1a;服务&#xff0c;协议和接口…

Github+docsify打造在线文档网站

写在前面 搭建这个在线文档的目的是方便自己对学习笔记的查看&#xff0c;比较喜欢 docsify 的主题风格&#xff0c;所以没有用 Github Pages 直接给的主题&#xff0c;自己根据官方文档进行了配置&#xff0c;目前已经成功上线。 1 效果图 可直接访问&#xff1a;https://x…

自定义View(未完待续)

一、概述 android提供了丰富的系统控件&#xff0c;但在实际开发中&#xff0c;这些控件依然不能完全覆盖我们的需求。有时&#xff0c;我们需要自定义控件来满足一些个性化产品需求。自定义控件&#xff0c;主要有以下三种方式&#xff1a; 继承现有控件&#xff0c;对其功能进…

计算机网络——物理层基本概念

1.物理层的任务 \qquad将各种计算机的传输媒体进行物理连接&#xff0c;为设备间的数据传输做好准备。由此&#xff0c;我们需要确定传输媒体的接口特性。 2.传输媒体的接口特性 2.1 机械特性 \qquad定义物理连接的特性&#xff0c;比如连接规格&#xff0c;接口形状&#xf…

《Cell》新发现!“第二大脑”的反击

图像:巨噬细胞(绿色)包围肠道神经元(红色)。资料来源:洛克菲勒大学黏膜免疫学实验室来源&#xff1a;生物通一个简单的胃病就能造成很大的伤害。有1亿个神经元散布在胃肠道中——就在火线上——它们可能被肠道感染消灭&#xff0c;可能导致长期的胃肠道疾病。但肠道感染也有好处…