zoukankan      html  css  js  c++  java
  • shell timeout

    写脚本的时候,经常需要用到超时控制。看《shell专家编程》时看到一个好例:修改了一下,

    1.超过timeout时间还没执行完,则kill进程,发邮件告警:

    set-x
    mailSend()
    {
            mailContent="xxxx Web response time over 5 seconds"
            echo $mailContent | mail -s "xxxxxx Web TimeOut"xxxxx@xxx.cion
    }
    timeout()
    {
            waitfor=3
            command=$*
            $command &
            commandpid=$!

            ( sleep $waitfor ; kill -9 $commandpid  >/dev/null2>&1&& mailSend )&

            watchdog=$!
            sleeppid=$PPID
            wait $commandpid >/dev/null2>&1

            kill $sleeppid >/dev/null2>&1
    }

    #测试的函数

    test123()
    {
            sleep 20
    }

    timeout test123

    
    

    2.超过timeout时间还没执行完,只发邮件告警,程序正常执行:

    mailSend()
    {
            mailContent="xxxxe Web response time over 5 seconds,Please have a check !"
            echo $mailContent | mail -s "xxxxx WEB response time over 5 senconds" $mailTo
    }
    timeout()
    {
            waitfor=6
            command=$*
            $command &
            commandpid=$!

            ( sleep $waitfor ;  mailSend )&

            watchdog=$!
            sleeppid=$PPID
            wait $commandpid >/dev/null2>&1
            kill  -9 $watchdog >/dev/null2>&1
            kill $sleeppid >/dev/null2>&1
    }

  • 相关阅读:
    xml传数据
    简单实用的GroupBox控件
    漂亮的NavMenu导航控件
    使用设计模式构建通用数据库访问类
    Windows路由表详解
    zz Linux Shell常用技巧(目录)
    Ubuntu Linux 环境变量PATH设置
    zz eclipse.ini内存设置
    find 用法
    zz【java规范】Java spi机制浅谈
  • 原文地址:https://www.cnblogs.com/ruiy/p/ShellTimeout.html
Copyright © 2011-2022 走看看