shell --- trap 抓取信号
生活随笔
收集整理的這篇文章主要介紹了
shell --- trap 抓取信号
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 解決問題
針對部分運行在生產環境中的腳本來說,有一些腳本運行的過程是不能被中斷的,比如:生產環境 定期備份腳本,為了保證備份安全,備份期間不能被 SIGTERM和SIGINT 之類的中斷信號中斷。
該種類型的腳本邏輯增加抓取信號的命令,從而保證腳本的運行不會被中斷。
trap命令即可提供該功能,trap 命令能夠抓取除 -9 信號之外的命令,SIGKILL信號是不能被阻塞的
2. 應用場景
不希望環境運行的腳本被 中斷信號中斷
3. 實現舉例
#!/bin/bashtrap "echo sig 15" 15 #抓取 15信號之后 執行`echo sig 15`命令
trap "echo sig 2" 2 #抓取 2信號之后,執行`echo sig 2`命令echo $$ #打印進程號while :
doecho "running"sleep 1
done
運行如下:
[root@node1 design_partten]# chmod u+x 15.sh
[root@node1 design_partten]# ./15.sh
2805189
running
running
sig 15 #另一個終端 執行 kill -15 2805189
running
sig 2 #當前終端執行 ctrl+c
running
running
Killed #另一個終端執行 kill -9 running
總結
以上是生活随笔為你收集整理的shell --- trap 抓取信号的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 求一个生意微信网名
- 下一篇: 凡事靠自己下一句是什么啊?