首页 > 学院 > 开发设计 > 正文

shell--trap

2019-11-06 09:04:55
字体:
来源:转载
供稿:网友
trap     trap 是shell自带的捕获信号量的指令。trap命令用于指定在接收到信号后将要采取的动作。常见的用途是在脚本程序被中断时完成清理工作。一、关于信号历史上,shell总是用数字来代表信号,而新的脚本程序应该使用信号的名字,它们保存在用#include命令包含进来的signal.h头文件中,在使用信号名时需要省略SIG前缀。kill和trap等都可以看到信号编号及其关联的名称。“信号”是指那些被异步发送到一个程序的事件。默认情况下,它们通常会终止一个程序的运行。二、trap 的使用1、运行格式trap命令的参数分为两部分,前一部分是接收到指定信号时将要采取的行动,后一部分是要处理的信号名。trap command signal它有三种形式分别对应三种不同的信号回应方式。第一种:trap "commands" signal-list当脚本收到signal-list清单内列出的信号时,trap命令执行双引号中的命令。第二种:trap signal-listtrap不指定任何命令,接受信号的默认操作,默认操作是结束进程的运行。第三种:trap " " signal-listtrap命令指定一个空命令串,允许忽视信号,我们用到的就是这一种。※请记住,脚本程序通常是以从上到下的顺序解释执行的,所以必须在你想保护的那部分代码以前指定trap命令。信号量详细列表可以trap -l即可显示因为肯定有人现在手头没有linux机器,我就列出来吧名称     默认动作          说明SIGHUP     终止进程     通常因终端掉线或用户退出而引发SIGINT    终止进程     中断进程SIGQUIT   建立CORE文件   退出,通常因按下Ctrl+/组合键而引发SIGILL    建立CORE文件      非法指令SIGTRAP   建立CORE文件       跟踪自陷SIGBUS    建立CORE文件      总线错误SIGSEGV   建立CORE文件       段非法错误SIGFPE    建立CORE文件      浮点异常SIGIOT    建立CORE文件      执行I/O自陷SIGKILL   终止进程      中断,通常因按下Ctrl+C组合键而引发SIGPipE   终止进程     向一个没有读进程的管道写数据SIGALARM  终止进程     计时器到时SIGTERM   终止进程     软件终止信号,终止,通常在系统关机时发送SIGSTOP   停止进程     非终端来的停止信号SIGTSTP   停止进程     终端来的停止信号SIGCONT   忽略信号     继续执行一个停止的进程SIGURG    忽略信号    I/O紧急信号SIGIO     忽略信号    描述符上可以进行I/OSIGCHLD   忽略信号     当子进程停止或退出时通知父进程SIGTTOU   停止进程     后台进程写终端SIGTTIN   停止进程     后台进程读终端SIGXGPU   终止进程     CPU时限超时SIGXFSZ   终止进程     文件长度过长SIGWINCH  忽略信号     窗口大小发生变化SIGPROF   终止进程     统计分布图用计时器到时SIGUSR1   终止进程     用户定义信号1SIGUSR2   终止进程     用户定义信号2SIGVTALRM 终止进程     虚拟计时器到时
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表