shell脚本中的信号捕捉

Shell Liemer_Lius 966℃ 0评论

我们常用的信号有:

1: SIGHUP
2: SIGINT
9: SIGKILL
15: SIGTERM
18: SIGCONT
19: SIGSTOP

如我们执行任务的时候,按Ctrl+C,会发送信号2给程序,程序就中止了。如果我们想在这个时候执行一些操作,就需要捕捉到这个信号,做相应的处理:

#!/bin/bash
#
# Date: 2018-01-09
# Script Name: a.sh
# Author: Liemer_Lius
CLEAN (){
  rm -rf /var/tmp/test
  echo "Cleaning..."
}
trap "CLEAN; exit 5" INT
mkdir -p /var/tmp/test
while true; do
  touch /var/tmp/test/file-`date +%F`.txt
  sleep 2
done

trap后面的引号中,是执行的一些操作;

引号后面是要捕捉的信号;

一般,会将进行的操作放进一个函数里面,然后在函数结束之后,需要exit,否则Ctrl+C无法中止,就只能:

Ctrl+Z放入后台 –> kill %1来杀死这个进程了。

 

 

 

转载请注明:liutianfeng.com » shell脚本中的信号捕捉

喜欢 (0)

发表回复