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版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:
随机推荐
- R学习----数据类型
今天开始学习R语言了,没原因,就是想学 本人开发环境在ubuntu 16.04 LTS下 R命令提示符 终端直接输入R进入交互模式进行R学习.如下图 R脚本 # My first program in ...
- python -> lambda与def的差别
lambda能够定义一个匿名函数.而def定义的函数必须有一个名字. 这应该是lambda与def两者最大的差别. 与Javascript不同的是,python中匿名函数与非匿名函数须要使用不同的语法 ...
- pip 使用技巧
指定豆瓣源安装 pip install configparser -i http://pypi.douban.com/simple/ --trusted-host=pypi.douban.com/si ...
- The.first.glance.at.linux.commands
## Get Ubuntu Version Info lsb_release -a ## Get Linux kernal info uname -a ## Get Computer name ech ...
- 我的直播demo
推流工具: ffmpeg 接收/转发流工具: nginx-rtmp 在线播放工具: video.js -------------------------------------- demo地址: ht ...
- C语言 百炼成钢25
/* 题目61:编写一个名为removestring的函数,该函数用于从一个字符串中删除一定量的字符. 该函数接受三个参数: 第1参数代表源字符串 第2参数代表需要删除字符的起始位置(位置从0开始) ...
- 第一百四十七节,封装库--JavaScript,滑动导航
JavaScript,封装库--滑动导航 效果图 html <!--滑动导航--> <div id="nav"> <ul class="ab ...
- linux驱动开发---导出内核符号
导出内核符号模板代码,验证小实例: /** *Copyright (c) 2013.TianYuan *All rights reserved. * *文件名称: Esdexp.c *文件标识: 导出 ...
- java网络编程5-SSL
服务器端 System.out.println("等待客户端连接..."); File keyFile=new File("C:/Users/mu/Desktop/mu. ...
- ORACLE 10g RAC [ CSSCLNT][1]clsssInitNative: connect failed, rc 9
"[ CSSCLNT][1]clsssInitNative: connect failed, rc 9“是Oracle RAC中经常遇到的问题,主要出现在安装过程和启动过程中.经常在$ORA ...