trap-接收信号_采取行动

 

trap命令用于指定在接收到信号后将要采取的动作,常见的用途是在脚本程序被中断时完成清理工作。

  kill和trap等都可以看到信号编号及其关联的名称。

“信号”是指那些被异步发送到一个程序的事件,默认情况下,它们通常会终止一个程序的运行。

基本格式:

trap command signal

前一部分是接收到指定信号时将要采取的行动,后一部分是要处理的信号名。

 

1、trap “commands” signal-list

当脚本收到signal-list清单内列出的信号时,trap命令执行双引号中的命令。

 

2、trap signal-list

trap不指定任何命令,接受信号的默认操作,默认操作是结束进程的运行。

 

3、trap ” ” signal-list

trap命令指定一个空命令串,允许忽视信号。

 

注意:

  脚本程序通常是以从上到下的顺序解释执行的,所以必须在想保护的那部分代码以前指定trap命令

 

信号量详细列表:trap -l 或是 kill -l

 

杀死所有子进程

  因为如果父进程执行完毕后,检测core的进程都没有发现core,所有子进程还存在,这就是传说中的僵尸进程。

  所以要杀死父进程所有子进程。

shell> kill -9 0  #杀死脚本自己及衍生出来的子进程

 

最后贴上源码示例一下:

shell> pa.script.sh

shell> sub_script.sh

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注