shell脚本基础(14)

              脚本信号捕捉技术
SIGHUP:挂起进程[1]
SIGING:来自键盘的终端ctrl+c[2]
SIGQUIT:从键盘退出ctrl+\[3]
SIGKILL:无条件终止[9]

当apache端口改变之后,kill -HUP 3349或者kill -1 3349或者kill -HUP httpd可以不需要重启apache

#!/bin/bash
#signal.sh
#信号测试
while :
do
    echo 'aaa';
done


捕捉到一个信号后,它可能会采取下面三种操作之一:
1、不采取任何行动,由系统来处理
2、捕捉该信号,但忽略它
3、捕捉该信号,但采取相应的行动

kill -9是无条件杀到进程

           trap信号捕捉
trap命令使用
trap "function" signal
1)signal为接受到的信号
2)function为执行函数
常见行动
1)清除临时文件
2)忽略该信号
3)询问用户是否中止脚本执行

[trap信号捕捉-1]

#!/bin/bash
#signal.sh
#信号捕捉
trap 'myfunc' 2         #捕捉到kill操作
function myfunc(){
          echo '你正在按ctrl+c键,程序无法中止,抱歉'
 }
i=0
while :
do
     let i++
     echo $i
     sleep 1
done


[trap信号捕捉-2]
#!/bin/bash
#signal.sh
#信号捕捉
#与用户发生交互
trap 'myfunc' 2         #捕捉到kill操作
function myfunc(){
          read -p '你确定中止该进程吗?yes or no :' s
          case $s in
               'yes')
                    exit;
               'no')
                    ;;
               '*')
                  myfunc
                  ;;
           esac
 }
i=0
while :
do
     let i++
     echo $i
     sleep 1
done
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值