tarp陷阱触发
在脚本的执行过程中,有时候希望能实时处理系统传来的信号,如,用户按ctrl+c ,处理的方法分为2种,接受信号或忽略信号,前者
通常会对信号安排执行特定的命令,后者想避免意外的状况干扰脚本的运行,这种能扑捉特定信息,并作出反应的机制,称为trap陷阱触发
trap的运用和系统的信号有关
信号
进程编号PID
unix-like系统,各进程之间,可用信号做沟通,每个进程都有一个独一无二的代码,称为PID,(进程编号),在命令语法中传递信号的
对象就是进程代码
列出内存中所有的进程
如os aux ;ps -ef 等
传送信号的方法
1:使用内置命令kill,可传送信号给进程
kill -信号 进程编号
或
kill -s 信号 进程编号
或
kill -n 信号 进程编号
如果省略信号,则默认传送sigterm给进程
########常用信号####################
HUP 1 终端断线
INT 2 中断(同 Ctrl + C)
QUIT 3 退出(同 Ctrl + \)
TERM 15 终止
KILL 9 强制终止
CONT 18 继续(与STOP相反, fg/bg命令)
STOP 19 暂停(同 Ctrl + Z)
tarp的运用
语法1:trap “触发指令” 信号串行
解释:向shell注册信号,只要系统产生此特定的信号,(意思就是掉到我们安排的陷阱中)trap指令就会触发,并执行命令中的触发指令
例子:
trap `echo "收到asdf信号"` ABRT
[root@centos129 tmp]# kill -ABRT $$
-bash: 收到asdf信号: command not found
向shell中注册ASDF信号,只要系统出现ASDF信号,就会执行echo命令,
trap 语法2
trap - 信号串行
如果trap的语法中没有触发指令,而是-或空白,则可恢复信号串行原本的作用,
trap ‘-’ ARRT
trap语法3
trap ‘’ 信号串行
忽略系统发出的信号串行
如果触发指令的部分是空字符串,那么shell会忽略这些信号串行,不做任何反应
例子:
trap '' INT #忽略使用者按下ctrl+c组合键
trap的语法4
trap -p
列出目前trap向shell注册的信号列表
trap陷阱触发
原创
©著作权归作者所有:来自51CTO博客作者风光坏家伙的原创作品,如需转载,请与作者联系,否则将追究法律责任
上一篇:转向
下一篇:正则 sed awk 入门
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Linux Shell之九 trap--陷阱触发
本篇主要介绍下Bash Shell中的信号的使用!
linux shell 信号 tarp -
snmpsharpnet的Trap实例
snmpsharpnet的Trap实例
snmpsharpnet的Trap实例