linux shell:使用trap来处理信号

35 篇文章 0 订阅
linux shell:使用trap来处理信号

shell脚本可以使用trap来处理信号

命令语法如下:
    trap 'signal_handler_function_name' SIGNAL LIST
SIGNAL LIST以空格分隔,它可以是信号编号或者信号名称。

下面的例子中,三个函数分别处理信号SIGINT、SIGTSTP和SIGTERM,

qingsong@db2a:/tmp$ cat signal.sh

#!/bin/bash
#filename: signal.sh

function handle_INT()
{
        echo I received signal : SIGINT, will do nothing
}

function handle_STP()
{
        echo I received signal : SIGTSTP, will do nothing
}

function handle_TERM()
{
        echo I received signal : SIGTERM. I will exit now
        exit
}

echo "My PID is $$"

trap 'handle_INT' SIGINT
trap 'handle_STP' SIGTSTP
trap 'handle_TERM' SIGTERM

while :
do
        sleep 1
done

qingsong@db2a:/tmp$ bash signal.sh 
My PID is 51100
^CI received signal : SIGINT, will do nothing <--当前session里按下了Ctrl+c
I received signal : SIGINT, will do nothing   <--另一个session里发出命令kill -SIGINT 51100
I received signal : SIGTSTP, will do nothing  <--另一个session里发出命令kill -SIGTSTP 51100
I received signal : SIGTERM. I will exit now   <--另一个session里发出命令kill -SIGTERM 51100
qingsong@db2a:/tmp$

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值