如何使用命令trap来捕捉信号? z

dpdk 源码分析 rte_ring rte_ring源码分析 阅读详情

它有三种形式分别对应三种不同的信号回应方式.
第一种:
 trap ""commands"" signal-list
当脚本收到signal-list清单内列出的信号时,trap命令执行双引号中的命令.

第二种:
 trap signal-list
trap不指定任何命令,接受信号的默认操作.默认操作是结束进程的运行.

第三种:
 trap "" "" signal-list
trap命令指定一个空命令串,允许忽视信号.

Linux信号简介  
1) SIGHUP 本信号在用户终端连接(正常或非正常)结束时发出, 通常是在终端的控制进程结束时, 通知同一session内的各个作业, 这时它们与控制终端不再关联.   
2) SIGINT 程序终止(interrupt)信号, 在用户键入INTR字符(通常是Ctrl-C)时发出   
3) SIGQUIT 和SIGINT类似, 但由QUIT字符(通常是Ctrl-/)来控制. 进程在因收到SIGQUIT退出时会产生core文件, 在这个意义上类似于一个程序错误信号.   
4) SIGILL 执行了非法指令. 通常是因为可执行文件本身出现错误, 或者试图执行数据段. 堆栈溢出时也有可能产生这个信号.   
5) SIGTRAP 由断点指令或其它trap指令产生. 由debugger使用.   
6) SIGABRT 程序自己发现错误并调用abort时产生.   
7) SIGIOT 在PDP-11上由iot指令产生, 在其它机器上和SIGABRT一样.   
8) SIGBUS 非法地址, 包括内存地址对齐(alignment)出错. eg: 访问一个四个字长的整数, 但其地址不是4的倍数.   
9) SIGFPE 在发生致命的算术运算错误时发出. 不仅包括浮点运算错误, 还包括溢出及除数为0等其它所有的算术的错误.   
10) SIGKILL 用来立即结束程序的运行. 本信号不能被阻塞, 处理和忽略.   
11) SIGUSR1 留给用户使用   
12) SIGSEGV 试图访问未分配给自己的内存, 或试图往没有写权限的内存地址写数据.   
13) SIGUSR2 留给用户使用   
14) SIGPIPE Broken pipe   
15) SIGALRM 时钟定时信号, 计算的是实际的时间或时钟时间. alarm函数使用该信号.   
16) SIGTERM 程序结束(terminate)信号, 与SIGKILL不同的是该信号可以被阻塞和处理. 通常用来要求程序自己正常退出. shell命令kill缺省产生这个信号.   
17) SIGCHLD 子进程结束时, 父进程会收到这个信号.   
18) SIGCONT 让一个停止(stopped)的进程继续执行. 本信号不能被阻塞. 可以用一个handler来让程序在由stopped状态变为继续执行时完成特定的工作. 例如, 重新显示提示符   
19) SIGSTOP 停止(stopped)进程的执行. 注意它和terminate以及interrupt的区别: 该进程还未结束, 只是暂停执行. 本信号不能被阻塞, 处理或忽略.   
20) SIGTSTP 停止进程的运行, 但该信号可以被处理和忽略. 用户键入SUSP字符时(通常是Ctrl-Z)发出这个信号   
21) SIGTTIN 当后台作业要从用户终端读数据时, 该作业中的所有进程会收到SIGTTIN信号. 缺省时这些进程会停止执行.   
22) SIGTTOU 类似于SIGTTIN, 但在写终端(或修改终端模式)时收到.   
23) SIGURG 有紧急数据或out-of-band数据到达socket时产生.   
24) SIGXCPU 超过CPU时间资源限制. 这个限制可以由getrlimit/setrlimit来读取/改变   
25) SIGXFSZ 超过文件大小资源限制.   
26) SIGVTALRM 虚拟时钟信号. 类似于SIGALRM, 但是计算的是该进程占用的CPU时间.   
27) SIGPROF 类似于SIGALRM/SIGVTALRM, 但包括该进程用的CPU时间以及系统调用的时间.   
28) SIGWINCH 窗口大小改变时发出.   
29) SIGIO 文件描述符准备就绪, 可以开始进行输入/输出操作.   
30) SIGPWR Power failure


<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
图像紫边消除(depurple) 对图像紫边形成原因、消除方法进行了介绍。 阅读详情

相关推荐

Java服务端实现Google Pay支付功能

全网最全代码、最清晰服务端处理Google Pay,最清晰讲解Google Pay集成逻辑。

jack2350536098的博客 1万+

trap信号捕捉详解

转载地址:http://www.bubuko.com/infodetail-1623557.html 标签:trap捕捉信号 1)trap介绍 2)trap信号列表 3)trap使用例子 4)测试INT(2)信号 5)同时测试多个信号 6)shell跳板机案例 【trap介绍】 通过trap命令用于指定在接收到信号后要采取的行动;trap命令的一种常见用途是在脚本

kunkliu的博客 1829

一种4位sar adc仿真验证

4位sar adc采用下图的电容阵列,电路如下图:所有电容的正端(也称为上极板)与比较器的反相端连接,比较器同相端接Vin,其工作过程进行大致分析见之前的文章《一种4位sar adc工作过程推导(三)》,下面对这个电路进行仿真验证。 两个参考电压VrefPV_{refP}VrefP​和VrefNV_{refN}VrefN​,V+=VinV_{+}=V_{in}V+​=Vin​,假设1116(VrefP−VrefN)+VrefN<Vin<1216(VrefP−VrefN)+VrefN\frac{

大学生视野 1955

linux下常见信号及其捕捉

一.linux信号对应的值 #define SIGHUP 1 #define SIGINT 2 #define SIGQUIT 3 #define SIGILL 4 #define SIGTRAP 5 #define SIGABRT 6 #define SIGIOT 6 #define SIGBUS 7 #define SIGFP

哒哒的博客 784

zynq-7000学习笔记(八)——USB摄像头图像采集

PC平台:WINDOWS 10 64位 Xilinx设计开发套件:Xilinx_vivado_sdk_2015.4 开发板:Zed Board USB摄像头:罗技 C270(720P) linux源码:2016_R1 一、配置linux,支持UVC       如果是中星微的ZC3XX系列的芯片,则要进到GSPCA把ZC3XX的驱动选上

luotong86的专栏 1万+

neruolib全脑建模计算框架

neurolib 是一个用python编写的全脑建模计算框架,也是可扩展的、允许轻松实现自定义神经质量模型,能够在介观尺度上表示脑区平均活动。

Rootfyx的博客 1149

Linux常用信号与信号捕捉(trap命令)

linux通过信号来在运行在系统的进程之间通信,也可以通过信号来控制shell脚本的运行 1.常用信号等级 1 ##进程重新加载配置 2 ##删除进程在内存中的数据 3 ##删除鼠标在内存中的数据 9 ##强行结束单个进程(不能被阻塞) 15 ##正常关闭进程(可能会被阻塞) 18 ...

sinceNow的博客 930

PINN内嵌物理知识神经网络入门及文献总结

内嵌物理知识深度学习方法(PINN)已经成功用于解决各类科学计算问题,其本质是将物理先验知识嵌入神经网络训练中,将一个求解PDE的问题转化为一个优化问题。这篇博客主要记录PINN相关论文

山里娃的博客 7万+

Linux shell 如何捕获信号(trap命令)

前言 Linux利用信号与运行在系统中的进程进行通信。当你在终端中按下(Ctrl +C)Linux内核会停止为shell分配CPU处理时间。会生成SIGINT信号中断进程。而下面要将的是trap命令在信号出现时捕获他们并执行命令。 捕获信号 trap命令允许你来指定shell脚本要监看并从shell中拦截的Linux信号。如果在脚本收到了trap命令中列出的信号,该信号不再由shell处理,而是交...

chen1415886044的博客 5563

UG二次开发避坑指南:如何正确配置Python环境让NXOpen脚本跑起来?

本文详细介绍了UG/NX二次开发中Python环境配置的全流程与NXOpen脚本调试技巧,帮助开发者避开常见陷阱。从NXOpen架构解析到Python解释器版本匹配,再到环境变量设置与路径问题处理,提供了一套经过验证的配置方案,确保脚本顺利运行。

weixin_33859135的博客 450

避坑指南:LVGL在Arduino环境编译报错?3步搞定lv_conf.h路径问题(附ST7789屏幕调试技巧)

本文详细解析了在Arduino环境中配置LVGL图形库时,如何解决常见的“lv_conf.h file not found”编译报错问题。通过三步法:定位并复制模板文件、启用核心配置并指定路径、配置基础参数,从根本上解决路径问题。文章还结合ST7789屏幕驱动,分享了使用TFT_eSPI库进行显示适配、内存优化及背光控制等实战调试技巧,帮助开发者建立清晰、可维护的嵌入式UI工程基础。

lake5的博客 860

(转)LINUX 信号机制【列表】

信号本质信号是在软件层次上对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。信号是异步的,一个进程不必通过任何操作来等待信号的到达,事实上,进程也不知道信号到底什么时候到达。信号是进程间通信机制中唯一的异步通信机制,可以看作是异步通知,通知接收信号的进程有哪些事情发生了。信号机制经过POSIX实时扩展后,功能更加强大,除了基本通知功能外,还可以传递附加信息

hairetz的专栏 2183

华为OD机试真题2026双机位C卷 Java&Go 实现【用户入网定期复评】

用户开立支付账户,在开户完成后立即对用户进行一次风险模型评级,输出一个评分风险,评分范围1-100,等区间的分为5个等级,1-19为等级1,20-39为等级2,40-59为等级3,60-79为等级4,80-100为等级5,系统每天会任务对全量入网用户进行计算复评时间,输出评分给出新的风险等级。复评规则如下:

MISAYAONE的博客 149

shell 在shell中捕捉信号的trap命令 z

一. trap捕捉到信号之后,可以有三种反应方式:  (1)执行一段程序来处理这一信号  (2)接受信号的默认操作  (3)忽视这一信号二. trap对上面三种方式提供了三种基本形式:  第一种形式的trap命令在shell接收到signal list清单中数值相同的信号时,将执行双引号中的命令串。  trap commands signal-list  trap "commands" si

481

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

shell学习之信号的捕捉(trap)

信号 linux通过信号来在运行在系统上的进程之间通信也可以通过信号来控制shell脚本的运行 (1)捕捉信号:trap命令 常用信号 ctrl+c(终止进程) ctrl+z(暂停进程,打入后台) [root@server ~]# trap "echo westos" 2 [root@server ~]# ^Cwestos (2)列出中断信号与键盘的关系 [root@server ~]# s...

hetoto的博客 432

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

shell中trap的作用

信号 linux通过信号来在运行在系统上的进程之间通信也可以通过信号来控制shell脚本的运行 (1)捕捉信号:trap命令 常用信号 ctrl+c(终止进程) ctrl+z(暂停进程,打入后台) [root@server ~]# trap "echo westos" 2 [root@server ~]# ^Cwestos (2)信号屏蔽 [root@server ~]# trap "" 2 #...

gordzafkiel的博客 1万+

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

linux进程跑飞了,【Shell】Linux信号(二)

【信号产生】bash shell允许用键盘上的键组合生成两种基本的Linux信号,这个在你需要停止或暂停跑飞了的程序时就能派上用场。终止进程Ctrl+C组合键会生成SIGINT信号,并将其发送给shell中当前运行的所有进程。Ctrl+C组合键会停止shell中当前运行的程序。2. 暂停进程Ctrl+Z组合键会生成一个SIGTSTP信号,停止shell中运行的任何进程。停止一个进程跟终止一个进程不...

weixin_39828102的博客 128

Shell使用Linux信号

一、信号简介 有时候,你在Linux运行一个脚本,它陷入了出乎意料的循环,这时,你想要终止它而不用关掉整个Linux系统,我想大家都会想到了一个命令Ctrl + C。 Linux系统和应用程序可以产生超过30个信号,使用命令kill -l可以查看信号列表,其中1-31是普通信号(非可靠信号),34-64是实时信号(可靠信号): 下面列举几个常见的信号: 默认情况下,shell会将这些传给shell脚本程序来处理,而shell脚本默认的行为是忽略这些信号,有时候不太利于脚本的运行,为了避免这种

承缘丶 504

linux下tarp命令的简单用法

#################信号################## linux通过信号来在运行在系统上的进程之间通信 也可以通过信号来控制shell的运行 1.捕捉信号:trap命令 常用信号 ctrl+c(终止进程) ctrl+z(打入后台暂停进程) trap "echo westos"2 #修改ctrl+c的结果 trap : 2 #复原 列出中断信号与键盘的关系 stty -a...

qwefyjwww的博客 514

linux命令行与shell脚本编程 -----15控制脚本

常见的Linux系统信号 信号 值 描述 1 SIGHUP 挂起进程 2 SIGINT 终止进程 3 SIGQUIT 停止进程 9 SIGKILL 无条件终止进程 15 SIGTERM 可能的话终止进程 17 SIGSTOP 无条件停止进程,但不是终止进程 18 SIGTST...

weixin_30394669的博客 78

shell中信号的捕捉(trap)

信号 linux通过信号来在运行在系统上的进程之间通信也可以通过信号来控制shell脚本的运行 (1)捕捉信号:trap命令 常用信号 ctrl+c(终止进程) ctrl+z(暂停进程,打入后台) [root@server ~]# trap &amp;quot;echo westos&amp;quot; 2 [root@server ~]# ^Cwestos (2)列出中断信号与键盘的关系 [root@server ~]...

Treasured ——的博客 1335

shell脚本进阶之信号的捕捉trap

shell脚本之信号的捕捉 ​ trap,翻译过来就是陷阱的意思,shell脚本中的陷阱是专门用来捕捉信号的。啥信号呢?比如经常使用的kill -9,kill -15,CTRL+C等都属于信号 1、查看所有可用的信号 trap -l或kill -l即可 [root@linux1 ~]# kill -l 63) SIGRTMAX-1 64) SIGRTMAX [root@li...

bayin4937的博客 800

linux捕捉信号sigint失败,为shell布置陷阱:trap捕捉信号方法论

本文目录:1.1 信号说明1.2 trap布置陷阱1.3 布置完美陷阱必备知识家里有老鼠,快消灭它!哎,又给跑了。老鼠这小东西跑那么快,想直接直接消灭它还真不那么容易。于是,老鼠药、老鼠夹子或老鼠笼就派上用场了,它们都是陷阱,放在那静静地等待着老鼠的光顾。在shell中,也可以捉"老鼠",捉到"老鼠"后,可以无视它、杀死它或者抓起来逗一番。只需使用内置命令trap(中文就翻译为陷阱、圈套)就可以布...

weixin_28362173的博客 914

32.全网最详细trap讲解,trap语法格式,信号和用途,最常用的信号,trap常用的命令,ctrl + c,信号屏蔽和恢复,trap -,debug,exit,return示例,三个综合案例

6.1 信号捕捉 trap trap ‘触发指令’ 信号 进程收到系统发出的指定信号后,将执行自定义指令,而不会执行原操作 trap ‘’ 信号 忽略信号的操作 trap ‘-’ 信号 恢复原信号的操作 trap -p 列出自定义信号操作 trap finish EXIT 当脚本退出时,执行finish函数 范例: #!/bin/bash trap ‘echo “Press ctrl+c”’ int quit trap -p for((i=0;i<=10;i++)) do sleep 1 echo $

Oracle/MySQL 到 国产信创数据库|迁移 · 调优 · 信创替换 9452

linux中的信号简介和trap命令

1.信号 linux通过信号来在运行在系统上的进程之间通信,也可以通过信号来控制shell脚本的运行 主要有一下信号 1 ##进程重新加载配置 2 ##删除进程在内存中的数据 3 ##删除鼠标在内存中的数据 9 ##强行结束单个进程(不能被阻塞) 15 #...

橙汁Iter的博客 3544

linux捕获shell命令,shell脚本进阶之信号的捕捉trap

shell脚本之信号的捕捉​trap,翻译过来就是陷阱的意思,shell脚本中的陷阱是专门用来捕捉信号的。啥信号呢?比如经常使用的kill -9,kill -15,CTRL+C等都属于信号1、查看所有可用的信号trap -l或kill -l即可[root@linux1 ~]# kill -l63) SIGRTMAX-1 64) SIGRTMAX[root@linux1 ~]# trap -l1)...

weixin_31300407的博客 593
上一篇: SendMessage 和 PostMessage 的区别 z
下一篇: HTTP:超文本传输协议(Hypertext Transfer Protocol) z
KataDoc360
博客等级 码龄18年 65粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值