linux administrator
jimonitu
全部博文(91)
2017年(1)
2011年(1)
2008年(15)
2007年(74)
kirsi17
1cpuer
zhjixi12
totola14
余散微习
cdm2135
screenpa
airmy
xyman_55
分类: LINUX
2007-08-25 10:46:18
在UNIX里,可能发生的第一种类型的事件都是由一个独立的信号来描述。每个信号都是一个小的正整数。信号0,实际上是shell中的一个惯例,而不是一个真正的信号。当shell脚本退出时,不管是使用exit还是执行完脚本里面的最后一条命令面退出,shell都会给自己发信号0来表明脚本执行完成并且应该终止. 查看系统所支持的所有信号(version redhat 9.0) $kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR 31) SIGSYS 33) SIGRTMIN 34) SIGRTMIN+1 35) SIGRTMIN+2 36) SIGRTMIN+3 37) SIGRTMIN+4 38) SIGRTMIN+5 39) SIGRTMIN+6 40) SIGRTMIN+7 41) SIGRTMIN+8 42) SIGRTMIN+9 43) SIGRTMIN+10 44) SIGRTMIN+11 45) SIGRTMIN+12 46) SIGRTMIN+13 47) SIGRTMIN+14 48) SIGRTMIN+15 49) SIGRTMAX-14 50) SIGRTMAX-13 51) SIGRTMAX-12 52) SIGRTMAX-11 53) SIGRTMAX-10 54) SIGRTMAX-9 55) SIGRTMAX-8 56) SIGRTMAX-7 57) SIGRTMAX-6 58) SIGRTMAX-5 59) SIGRTMAX-4 60) SIGRTMAX-3 61) SIGRTMAX-2 62) SIGRTMAX-1 63) SIGRTMAX 用stty -a可以列出中断信号与键盘的对应 信号发送 example: $kill pid 向进程pid发送结束信号 信号处理 有以下三种方式 1.不做任何动作 2.忽略信号,并继续执行 3.捕捉该信号并执行与信号相关的一些命令。 trap命令 用来设置和清除接收到信号时采取的动作 syntax: trap name signs 这name既可是命令列表,也可是要执行的shell函数的名称。signs是要处理的信号的列表 常见的用处是 清除临时文件 一直忽略信号 在关键操作阶段忽略信号 清除临时文件 如果脚本创建了临时文件,正常情况下,大多数脚本都能完成清除工作,但有信号的情况下,很少有脚本能完成清除工作。 如:trap Cleanup 2 15 当接收到信号SIGINT或SIGTERM时脚本调用Cleanup例程 忽略信号 有两种方式 trap '' sigs trap : sigs 第一种方式,是传递一个空参数,trap 将它理解为忽略 第二种方式,指定要执行的命令是:,它是空操作命令,两种效果是一样的,使用任何一种都可以。 如:使用这样的语句可以使这些中断信号被忽略: trap " " 1 2 3 24 或 trap "" HUP INT QUIT TSTP 上面列出了多个信号,它们表示或而不是与
上一篇:shell program下的调试
下一篇:shell program下的常见问题
登录 注册