linux shell:使用trap来处理信号
linux shell:使用trap来处理信号shell脚本可以使用trap来处理信号命令语法如下: trap 'signal_handler_function_name' SIGNAL LISTSIGNAL LIST以空格分隔,它可以是信号编号或者信号名称。下面的例子中,三个函数分别处理信号SIGINT、SIGTSTP和SIGTERM,qingsong@
·
linux shell:使用trap来处理信号
shell脚本可以使用trap来处理信号
命令语法如下:
trap 'signal_handler_function_name' SIGNAL LIST
SIGNAL LIST以空格分隔,它可以是信号编号或者信号名称。
下面的例子中,三个函数分别处理信号SIGINT、SIGTSTP和SIGTERM,
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$
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$
更多推荐
已为社区贡献4条内容
所有评论(0)