Shell-12-linux信号
信号类型
信号:信号是在软件层次上对中断机制的一种模拟,通过给一个进程发送信号,执行相应的处理函数
进程可以通过三种方式来响应一个信号:
1.忽略信号,即对信号不做任何处理,其中有两个信号不能忽略: SIGKILL 及 SIGSTOP
2.捕捉信号
3.执行缺省操作, Linux 对每种信号都规定了默认操作
Linux 究竟采用上述三种方式的哪一个来响应信号呢? 取决于传递给响应的 API 函数
Linux 支持的信号有

CoreDump(核心转储):
当程序运行过程中异常退出时,内核把当前程序在内存状况存储在一个 core 文件中,以便调试
执行命令 ulimit -c 如果是 0 则没有开启, 也不会生成 core dump 文件,可通过 ulimit -c unlimited 命令临时开启 core dump 功能, 只对当前终端环境有效,如果想永久生效,可修改/etc/security/limites.conf 文件,添加一行 "* soft core unlimited"默认生成的 core 文件保存在可执行文件所在的目录下,文件名为 core
如果想修改 core 文件保存路径,可通过修改内核参数: echo "/tmp/corefile-%e-%p-%t" > /proc/sys/kernel/core_pattern则文件名格式为 core-命名名-pid-时间戳
Linux 支持两种信号:
一种是标准信号,编号 1-31,称为非可靠信号(非实时),不支持队列,信号可能会丢失,比如发送多次相同的信号,进程只能收到一次,如果第一个信号没有处理完,第二个信号将会丢弃
一种是扩展信号,编号 32-64,称为可靠信号(实时),支持队列,发多少次进程就可以收到多少次
发送信号一般有两种情况:
一种是内核检测到系统事件,比如键盘输入 CTRL+C 会发送 SIGINT 信号
另一种是通过系统调用 kill 命令来向一个进程发送信号
kill命令
kill 命令发送信号给进程
参数:
-s # 信号名称
-n # 信号编号
-l # 打印编号 1-31 信号名称

建议使用kill -15 进程ID,不要使用kill -9 进程ID,因为可能会导致程序异常
trap命令
trap命令定义 shell 脚本在运行时根据接收的信号做相应的处理
命令格式:
trap [-lp] [ [ arg ] sinal_spec ... ]
-l #打印编号 1-64编号信号名称
arg #捕获信号后执行的命令或者函数
signal_spec #信号名或编号
一般捕捉信号后,做以下几个动作:
1.清除临时文件
2.忽略该信号
3.询问用户是否终止脚本执行
示例
1.按 CTRL+C 不退出循环
没有忽略CTRL+Z

2.循环打印数字,按CTRL+C 退出,并打印退出提示

3.调用函数,让用户选择是否终止循环

Shell-12-linux信号的更多相关文章
- Shell编程之Linux信号及信号跟踪
一.Linux信号 1.什么是信号? Linux信号是由一个整数构成的异步消息,它可以由某个进程发给其他进程,也可以在用户按下特定键发生某种异常事件时,由系统发给某个进程. 2.信号列表 [root@ ...
- shell在linux里摇摇晃晃
1.shell不只是一种解释器,还是一种编程工具 查看系统中可用的shell,linux默认使用 Bash Shell [root@localhost ~]# cat /etc/shells /bin ...
- xenomai内核解析之信号signal(一)---Linux信号机制
版权声明:本文为本文为博主原创文章,转载请注明出处.如有错误,欢迎指正.博客地址:https://www.cnblogs.com/wsg1100/ 目录 1. Linux信号 1.1注册信号处理函数 ...
- Linux信号类型说明
说明 在Linux系统开发中经常要使用到信号来实现异步通知机制.而在Linux系统中信号有很多种,也不用全部记住,学习几种常见的信号,学会使用即可:当然也要知道用哪种方式能够发送这样的信号. 查看li ...
- Linux信号基础
Linux信号基础 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! Linux进程基础一文中已经提到,Linux以进程为单位来 ...
- Linux信号(signal) 机制分析
Linux信号(signal) 机制分析 [摘要]本文分析了Linux内核对于信号的实现机制和应用层的相关处理.首先介绍了软中断信号的本质及信号的两种不同分类方法尤其是不可靠信号的原理.接着分析了内核 ...
- 用shell实现linux系统应用文件清理工具
用shell实现linux系统文件清理工具 1:原始需求 在系统运维中,会产生大量应用备份文件.落地文件等,这些文件需要定时清理.一般来说,都是使用crontab 拉起一个脚本来清理.类似这样: 30 ...
- 非常好的一篇对linux信号(signal)的解析 (转载)【转】
转自:https://blog.csdn.net/return_cc/article/details/78845346 Linux信号(signal) 机制分析 转载至:https://www.cnb ...
- Linux 信号:signal 与 sigaction
0.Linux下查看支持的信号列表: france@Ubuntux64:~$ kill -l ) SIGHUP ) SIGINT ) SIGQUIT ) SIGILL ) SIGTRAP ) SIGA ...
- Linux信号机制
Linux信号(signal) 机制分析 [摘要]本文分析了Linux内核对于信号的实现机制和应用层的相关处理.首先介绍了软中断信号的本质及信号的两种不同分类方法尤其是不可靠信号的原理.接着分析了内核 ...
随机推荐
- centos安装配置和使用 Nexus
Nexus安装配置和使用 第一步安装jdk yum install java-1.8.0-openjdk-devel 第二步下载nexus-3.12.1-01-unix.tar.gzjdk 下载地址: ...
- 暑假自学java第八天
1.接口的概念(关键字interface ) Java程序设计中的接口 ( interface)也是一种规范,用来组织应用程序中的类,并调节它们的相互关系.接口是由常量和抽象方法组成的特殊类,是对抽 ...
- bson的类型
BSON是JSON的扩展数据类型
- STM32笔记二
1.STM32编程通常有两种方法:一种是寄存器编程,另外一种是固件库编程.寄存器编程是基础,而固件库是寄存器编程的基础上升级而来的编程方法,是需要重点掌握的编程方法. 2.STM32F103采用的是C ...
- XSS一些总结
XSS一些总结 除了script以外大多标签自动加载触发JS代码大多用的都是on事件,以下标签都可以用下面的方法去打Cookie以及url等 常见标签 <img><input> ...
- java基础---设计模式(3)
行为型模式 出处:http://blog.csdn.net/zhangerqing 行为型模式包括策略模式.模板方法模式.观察者模式.迭代子模式.责任链模式.命令模式.备忘录模式.状态模式.访问者模式 ...
- python使用笔记18--写日志
1 import nnlog 2 import traceback 3 #level:输出日志级别,debug:把所有的日志都打印出来,info:打印info以上的日志, 4 # warning:打印 ...
- 手把手教你在Modelarts平台上进行视频推理
摘要:为了方便小伙伴们进行视频场景的AI应用开发,Modelarts推理平台将视频推理场景中一些通用的流程抽取出来预置在基础镜像中,小伙伴们只需要简单地编写预处理及后处理脚本,便可以像开发图片类型的A ...
- Java基础00-继承17
1. 继承 1.1 继承概述 但是我们将相同的类提取出来就会变成这个样子 让他们之间产生一个继承的关系 1.2 继承的好处和弊端 IS-A.HAS-A和USE-A关系 苹果是水果的一种可以使用继承猫是 ...
- PAT甲级:1136 A Delayed Palindrome (20分)
PAT甲级:1136 A Delayed Palindrome (20分) 题干 Look-and-say sequence is a sequence of integers as the foll ...