linux命令行与shell脚本编程 -----15控制脚本
常见的Linux系统信号
| 信号 | 值 | 描述 |
| 1 | SIGHUP | 挂起进程 |
| 2 | SIGINT | 终止进程 |
| 3 | SIGQUIT | 停止进程 |
| 9 | SIGKILL | 无条件终止进程 |
| 15 | SIGTERM | 可能的话终止进程 |
| 17 | SIGSTOP | 无条件停止进程,但不是终止进程 |
| 18 | SIGTSTP | 停止或暂停进程,但不终止进程 |
| 19 | SIGCONT | 继续运行停止的进程 |
1.终止信号
ctrl+C生成SIGINT信号,并将其发送给shell中当前运行的所有进程。
2.暂停进程
CTRL+Z生成SIGTSTP信号,停止shell中运行的任何进程。
停止进程和终止进程不同,停止进程会让程序继续保留在内存中,并能从上次停止的位置继续运行。
当你用CTRL+Z组合键时,shell会通知你进程已经被停止了。
liuxj@liuxj-Lenovo:~/shell_test$ sleep
^Z
[]+ 已停止 sleep
方括号中的数字是shell分配的作业号,shell将shell中运行的每个进程称为作业,并为每个作业分配一个唯一的作业号。
知道作业的PID号,可以利用kill命令来发送SIGKILL信号来终止它:
kill -
3。捕捉信号
trap允许你指定shell脚本要观察哪些Linux信号并从shell中拦截。如果脚本中收到trap命令列出的信号,它会阻止它被shell处理,而在本地处理它。
trap commands signals
你可以用数值或者Linux信号名来指定信号。
trap "echo ' Sorry! I have trapped Ctrl -C'" SIGINT SIGTERM
echo This is a test program
count=
while [ $count -le ]
do
echo "LOOP #$count"
sleep
count=$[ $count + ]
done
echo This is the end of the test program
本例中用到的trap命令会在每次检测到SIGINT或者SIGTERM信号时显示一行简单的文本消息。
4.捕捉脚本的退出
要捕捉shell脚本的退出,只要在trap命令后加上EXIT信号就行:
#!/bin/bash
trap "echo byebye" EXIT
count=
while [ $count -le ]
do
echo "loop #$count"
sleep
count=$[$count + ]
done
当脚本运行到常规的退出点时,捕捉就被触发了,shell会执行你在trap命令行指定的命令。
EXIT捕捉即使是在提前退出脚本时也会工作。
linux命令行与shell脚本编程 -----15控制脚本的更多相关文章
- 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---15
以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:
- Linux命令行与shell脚本编程大全.第3版(文字版) 超清文字-非扫描版 [免积分、免登录]
此处免费下载,无需账号,无需登录,无需积分.收集自互联网,侵权通知删除. 点击下载:Linux命令行与shell脚本编程大全.第3版 (大小:约22M)
- 《Linux命令行与shell脚本编程大全 第3版》创建实用的脚本---11
以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:
- 《Linux命令行与shell脚本编程大全 第3版》高级Shell脚本编程---47
以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:
- 《Linux命令行与shell脚本编程大全 第3版》Shell脚本编程基础---57
以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:
- 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---57
以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:
- 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---56
以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:
- 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---55
以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:
- 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---54
以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:
随机推荐
- NumberUtils
package cn.edu.hbcf.common.utils; import java.math.BigDecimal; import java.text.NumberFormat; import ...
- 获取JQuery UI tabs中被选中的tabs的方法
JQuery标签事件处理实例 如果你正在使用JQuery tabs而且想从基本的功能扩展到自定义的功能,这是你最好知道如何处理JQuery的点击事件. 在这篇文章中: 1.回顾如何添加当tab被点击时 ...
- lnmp集成开发环境安装pdo_dblib扩展
php连接mssql,获取的结果中文乱码,pdo_dblib扩展使用的是apt-get install php5-sybase方法安装的,尝试了修改freetds.conf php.ini 文件编码 ...
- 实现Netty服务器与CocosCreate通信
尽量采用无锁化Netty通信处理棋牌房间逻辑 一,棋牌类服务器的特点 1,棋牌类不分区不分服 一般来说,棋牌游戏都是不分区不分服的.所以棋牌类服务器要满足随着用户量的增加而扩展的需要,所以需要设计Ga ...
- ytu 2231: 交集问题(线性表)(数据结构,链表练习)
2231: 交集问题(线性表) Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 6 Solved: 3[Submit][Status][Web Boar ...
- 用MathType编辑异或与非符号有什么方法
在数学中我们会遇到各种数学符号,有运算符号,希腊符号,还有表示逻辑关系的逻辑符号等,这些大多都是比较常用的符号.其中逻辑符号中我们经常会用到异或与非等,这些符号的编辑我们常常会需要用MathType这 ...
- Android 7.1.1 锁屏界面启动流程
前几天遇到一个低概率复现锁屏界面不显示,仅仅显示状态栏的问题,跟了下锁屏界面启动显示的流程,在这分享下,也方便以后自己查看.前面简介了下Zygote启动流程, Zygote进程启动后会首先创建一个Sy ...
- sqlmap注入教程
1.SQLMAP用于Access数据库注入 (1)猜解是否能注入win: python sqlmap.py -u "http://www.stronkin.com/en/CompHonorB ...
- Android实例-使用电话拨号器在移动设备上
Android实例-使用电话拨号器在移动设备上 源文地址: http://docwiki.embarcadero.com/RADStudio/XE5/en/Mobile_Tutorial:_Using ...
- angular_文本变化
注意,在input中用ng-change的时候,一定要结合着ng-model用 开头,注意在这里添加了ng-app <!DOCTYPE html> <html lang=" ...