linux中的信号简介和trap命令

127 篇文章 0 订阅
22 篇文章 0 订阅

1.信号
linux通过信号来在运行在系统上的进程之间通信,也可以通过信号来控制shell脚本的运行

主要有一下信号

1               ##进程重新加载配置
2               ##删除进程在内存中的数据
3               ##删除鼠标在内存中的数据
9               ##强行结束单个进程(不能被阻塞)
15              ##正常关闭进程   (可能被阻塞)
18              ##运行暂停的进程
19              ##暂停某个进程   (不能被阻塞)
20              ##把进程号打入后台
man 7 signal    ##查看信号详细信息

1)捕捉信号:trap命令
#常用信号 ctrl+c(终止进程) ctrl+z(暂停进程)

如上图,信号2与ctrl+c的作用时一样的

stty -a                                   ##列出中断信号与键盘的关系

trap "" 2                        ##信号屏蔽,此时按ctrl+c就不会有作用
trap : 2                         ##恢复信号

2)捕捉脚本的退出

#!/bin/bash

trap "echo 'Sorry!I have trapped Ctrl+C'" 2
echo "This is a test script~"

count=1

while [ $count -le 10 ]
do
    echo "Loop #$count"
    sleep 1
    count=$[ $count + 1 ]
done

echo "This is the end of the script~"
trap - 2
echo "I just removed the trap"

如上图,当我运行这个脚本的时候,ctrl+c是被trap住的,当脚本运行结束后,ctrl+c就被释放了

3)一个脚本

运行这个脚本会不停的新建以westos+时间组成的文件,当使用ctrl+c命令时,会自动删除所有新建的文件

#!/bin/bash

trap "find /tmp -type f -name "westos_*" | xargs rm -f && exit " 2

while true
do
    touch /tmp/westos_$(date +%F-%N-%M-%S)
    sleep 2
    ls -l /tmp/westos*
done

 

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值