博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux中的信号简介和trap命令
阅读量:4946 次
发布时间:2019-06-11

本文共 1142 字,大约阅读时间需要 3 分钟。

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/bashtrap "echo 'Sorry!I have trapped Ctrl+C'" 2echo "This is a test script~"count=1while [ $count -le 10 ]do    echo "Loop #$count"    sleep 1    count=$[ $count + 1 ]doneecho "This is the end of the script~"trap - 2echo "I just removed the trap"

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

3)一个脚本

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

#!/bin/bashtrap "find /tmp -type f -name "westos_*" | xargs rm -f && exit " 2while truedo    touch /tmp/westos_$(date +%F-%N-%M-%S)    sleep 2    ls -l /tmp/westos*done

来源:

转载于:https://www.cnblogs.com/qixidi/p/10229224.html

你可能感兴趣的文章