信号和trap
来源:互联网 发布:移动宽带网络设置 编辑:程序博客网 时间:2024/04/30 01:39
1. 信号:那些被异步发送到一个程序的事件
# trap -l
1) SIGHUP 终止进程,终端线路挂断
2) SIGINT 终止进程,中断进程(Ctrl-C)
3) SIGQUIT 终止进程,产生core文件(Ctrl-)
4) SIGILL 非法指令
9) SIGKILL 终止进程,杀死进程
15) SIGTERM 终止进程,软件终止信号
18) SIGCONT 忽略信号,继续执行一个停止的进程
19) SIGSTOP 停止进程,非终端来的停止信号
20) SIGTSTP 停止进程,终端来的停止信号
# 无法被忽略的信号
KILL(9)
STOP(17)
CONT(19)
# 可被捕获的信号
HUP(1)
INT (2, Ctrl-c)
QUIT (3, Ctrl-)
TERM (15)
2. trap 捕获信号,三种处理方式
1) 执行一段程序来处理这个信号
trap ‘cmds’ signals
2) 接受信号的默认操作
trap signals
3) 忽略信号
trap ’ ’ signals
# Ctrl-C/Ctrl-\ 打印提示并退出trap 'echo "you hit Ctrl-C/Ctrl-\, now exiting.."; exit' SIGINT SIGQUIT# 使Ctrl-C无效stty -a # 获取中断信号与键盘的对应关系trap "" 2tail -f /etc/passwd # Ctrl+C can't quittrap 2tail -f /etc/passwd # Normal
3. trap处理shell返回值
1) 脚本正常退出后,执行指定命令
trap “cmds” EXIT
2) 脚本执行时打印调试信息
trap “cmds” DEBUG
3) 当命令出错,退出码非0,执行指定的命令
trap “cmds” ERR
4) 从shell函数返回,或source另一个脚本文件时,执行指定的命令
trap “cmds” RETURN
# 追踪命令或函数的返回状态trap 'echo "[LINE:$LINENO] Error: Command or function exited with status $?"' ERR# 追踪命令执行后的详细结果trap 'echo "Before execute line $LINENO: a=$a, b=$b, c=$c"' DEBUG
0 0
- 信号和trap
- Linux 信号捕捉trap
- shell trap信号处理
- trap捕捉信号学习
- linux trap 捕捉信号
- Trap命令之信号处理
- 信号trap的应用(转)
- shell中trap捕获信号
- shell中trap捕获信号
- shell - 使用命令trap来捕捉信号
- shell学习五十三天----捕获信号trap
- trap命令--在脚本中处理信号
- Linux trap --在脚本中处理信号
- linux shell:使用trap来处理信号
- Shell编程笔记(日志文件、信号、trap捕捉信号、eval)
- shell——trap捕捉信号(附信号表)
- shell——trap捕捉信号(附信号表)
- shell——trap捕捉信号(附信号表)
- 使用tar压缩多文件夹失败
- 泛型
- ConfigParser读取配置文件包含转义字符的处理办法
- LESS
- Java list的用法排序及遍历
- 信号和trap
- bzoj3669【NOI2014】魔法森林 SPFA
- Android-AR环境搭建
- BZOJ 4318(OSU!-立方的期望)
- iOS 面试题汇总
- Tomcat 6 绑定域名和根域名
- hdoj 1874 畅通工程续【dijkstra、floyd、spfa】
- ViewFlipper左右滑动事件
- No permission to write APN settings