linux的信号,可以用于进程间通信,还可以用于系统向进程发送命令。比如当系统关机的时候,需要通知每一个进程做善后工作,系统会对每个进程发送SIGTERM信号。进程在收到信号之后就会做一些清理动作。你也可以手动发送一些信号,比如“Ctrl+C”会像指定的进程发送SIGINT信号,如果进程没有指定捕获信号动作,那就默认的动作就是挂掉。linux系统信号非常多,常见的信号有:

信号值 信号名 描述

1 SIGHP 挂起进程

2 SIGINT 终止进程

3 SIGQUIT 停止进程

9 SIGKILL 无条件终止进程

15 SIGTERM 尽可能终止进程

17 SIGSTOP 停止进程,不是终止进程

18 SIGTSTP 停止或暂停进程,但不终止进程

19 SIGCONT 继续运行停止的进程

在一个进程中,捕获信号需要用到注册信号函数signal,那么在一个shell脚本中如何去捕获信号,并处理信号呢?需要使用到linux提供的命令trap,trap的用法:

trap cmd sigVALUE

trap 动作 要捕获的信号

例如:trap “echo ‘I got signal INT’ ” SIGINT

在默认的情况下,对shell脚本发送Ctrl+C会导致脚本的退出,如果加上捕获命令,则直接捕获并做相应处理,处理动作是由你来指定的。

接下来我们写几个例子来演示如何使用。

例1:捕获信号并处理

结果如下所示:

例2: 还可以捕获 shell退出的消息

trap comand EXIT

结果如下:

linux组合键 发送指定信号_linux trap脚本信号捕获命令的使用相关推荐

  1. 组合键 发送指定信号_Django signal 信号机制的使用

    Django中提供了"信号调度",用于在框架执行操作时解耦,当某些动作发生的时候,系统会根据信号定义的函数执行相应的操作 一.Django中内置的 signal 类型主要包含以下几 ...

  2. 高效办公小工具:AutoHotkey(进阶版)——自定义组合键打开指定应用与网页,手机号邮箱等自动补全

    高效办公小工具:AutoHotkey--自定义快捷键与自动填充 使用方法: 1.安装下载文件中的exe程序 2.新建TXT文档,将后缀名改为.ahk 3.使用npp打开该文件,进行自定义设置(npp下 ...

  3. linux的mysql本地yum安装_Linux Centos 下使用yum 命令安装mysql实现步骤

    Linux Centos 下使用yum 命令安装mysql实现步骤 1. 查看服务器中有没有安装过Mysql 1. 查看有没有安装包: yum list mysql* #移除已经安装的mysql yu ...

  4. 打包到指定目录_linux中打包文件tar命令的简单用法

    tar 是tape archive的缩写,原理就是把多个文件前后连在一起,形成一个大的文件,tar命令并不对文件进行压缩. tar打包文件起码要跟上2个选项:-cf,-c选项是创建打包文件,-f选项是 ...

  5. Linux如何全盘搜索MySQL文件_Linux上的文件搜索命令实例详解

    locate 基础了解 locate命令搜索的后台数据库路径:/var/lib/mlocate/mlocate.db ls -hl /var/lib/mlocate total 1.2M -rw-r- ...

  6. linux遍历目录删除指定文件,利用shell脚本遍历文件夹内所有的文件并作整理统计的方法-linux删除文件夹...

    本篇文章扣丁学堂Linux培训小编给读者们分享一下利用shell脚本遍历文件夹内所有的文件并作整理统计的方法,文章具有很好的参考价值,感兴趣的小伙伴就随小编来了解一下吧. 环境: Ubuntu下采用s ...

  7. Linux系列: root指定用户权限执行脚本

    root用户执行: shell> sudo -H -u testUser bash -c "touch test"

  8. 【搞定CAD】键盘“组合键”应用小技巧

    今天来说一说组合键在CAD中的应用 选择性记忆某些命令的组合快捷键 可以提高操作速度 举个栗子:相切相切相切画圆快捷键? C-3P-tan拾取点-tan拾取点-tan拾取点 或者常规方式:直接点图标 ...

  9. linux shell trap捕捉信号 附信号表 SIGTERM SIGKILL

    trap捕捉信号有三种形式 第一种: trap "commands" signal-list 当脚本收到signal-list清单内列出的信号时,trap命令执行双引号中的命令. ...

最新文章

  1. 阿里程序员回老家被哥们问工作,回答在阿里,哥们却吐槽:破IT就破IT,还阿里巴巴!网友:京东就是送快递的,美团就是送外卖的!...
  2. 大数据风控-反欺诈之黑卡与养卡
  3. ACE之Proactor模式使用实例
  4. 【Python小程序】必备软件系列之文字识别提取,前台再也不同担心纸质转电子文件啦~
  5. ubuntu下为opera26.0安装flash
  6. AAAI 2022 | 可解释和鲁棒的联合文本分类及证据提取
  7. 关于parallel rollback的一点总结
  8. vue 使用 el-image图片无法显示
  9. JVM的进阶学习(GC Roots、JVM调优与参数配置、)
  10. Office2003与Office2007默认打开方式的切换
  11. 单片机r6/r7c语言怎么用,关于单片机C51中c语言函数(-nop-())?
  12. 面试Python时,面试官最喜欢问这些技术问题
  13. type(img).__module__ == np.__name__
  14. C#获取字符串中某个字符出现的次数
  15. AE 动效工作流技巧 —— 减少 Bodymovin 导出的 JSON 大小并提升性能(二)
  16. python写词法分析器_python实现词法分析器
  17. linux下mysql数据库备份与恢复(全量+增量)
  18. 外设/* 面包板套件使用
  19. C基础:45道练习题汇总(初学者加油)
  20. 数据库如何删除服务器文件,SqlServer数据库同时备份到两台服务器上(并自动删除过期文件)...

热门文章

  1. UE3 Lightmass 技术指南
  2. rocketmq 4.X 扩容思路
  3. 玩转Docker镜像
  4. bootstrap 总结
  5. python网络编程学习笔记(4):域名系统
  6. 调整地面材质_【C4DtoA 13】Arnold渲染器(材质七): Shadow Matte Shader
  7. css3切角文本框_CSS3:linear-gradient切角画册
  8. fedora 20 中关闭防火墙
  9. 如何用C语言编辑窗口界面,「分享」C语言如何编写图形界面
  10. mysql 迁移后无法启动_Mysql数据迁移后启动出错_MySQL