zoukankan      html  css  js  c++  java
  • linux中的信号简介和trap命令

    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
    

    来源:https://blog.csdn.net/weixin_40543283/article/details/85561804

  • 相关阅读:
    Metadata Lock原理5
    Seconds_Behind_Master
    Metadata Lock原理4
    MySQL Troubleshoting:Waiting on query cache mutex 腾讯数据库工程师:幕南风
    Metadata Lock原理2
    Metadata Lock原理1
    Online DDL与pt-online-schema-change
    Solaris 安装JDK
    RAID 概述
    4K Block Size的Device和 Aligned IO
  • 原文地址:https://www.cnblogs.com/qixidi/p/10229224.html
Copyright © 2011-2022 走看看