写脚本的时候,经常需要用到超时控制。看《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
}

shell timeout相关推荐

  1. Shell - timeout命令

    timeout是一个命令行工具,它运行一个指定的命令,如果在给定的时间后仍在运行,则终止该命令.换句话说,timeout命令允许你运行一个有时间限制的命令.timeout命令是GNU核心实用程序包的一 ...

  2. linux read函数_Linux中shell输入ls命令后会系统会发生什么

    大家都用过Shell执行一些Linux命令 在命令的背后,到底发生了什么呢,让我们来一起探索 Shell执行主流程 1.Printthe info of reminding 打印提示信息 2.Wait ...

  3. Translate Shell使用

    来源 Linux中使用命令行进行谷歌翻译, How To Use Google Translate From Commandline In Linux - Just Code centos中安装 wg ...

  4. python 中的queue, deque

    python3 deque(双向队列) 创建双向队列 import collections d = collections.deque() append(往右边添加一个元素) import colle ...

  5. MIPCMS V3.1.0 远程写入配置文件Getshell过程分析(附批量getshell脚本)

    作者:i春秋作家--F0rmat 0×01 前言 今天翻了下CNVD,看到了一个MIPCMS的远程代码执行漏洞,然后就去官网下载了这个版本的源码研究了下.看下整体的结构,用的是thinkPHP的架构, ...

  6. Puppet核心资源类型浅析

    作者:刁冰雪 时间:2018-02-02 一.核心类型--PACKAGE 典型案例说明 1.使用latest将软件持续安装为最新版 使用yum源安装软件时,package类型提供了两种软件安装的方式, ...

  7. Linux的长连接设置

    Linux长连接设置 文章目录 Linux长连接设置 背景 解决方法 应用层 Bash超时设置 openssh-servers 和 openssh-clients vsftpd TCP 层 链路层 背 ...

  8. Hacked某安汽车车机系统

    很久之前尝试对某安汽车的车机系统进行渗透测试,但是却卡在入口无法进入,尝试暴力破解但是字典不够强大,没能成功.前段时间看到了绿盟科技博客的<新型车机,如何攻防?>感觉有点熟悉,再次探索发现 ...

  9. linux 脚本 wait,shell脚本使用 timeout + wait 完成: 超时退出执行,等待执行完毕并处理执行结果 - yanbin's Blog...

    具体需求是: 1.从文件中读取 seq, 使用 pub 程序将 seq 推送给定阅读了 cmd topic 的 peer client. client 将处理结果(message)推送到 cmdres ...

最新文章

  1. 从《翔谈》说起,看美团
  2. ECCV 2020 | 基于分割一致性的单目自监督三维重建
  3. java跳转语句包含goto_Java 语句标签实现goto跳转
  4. 架设httpd服务器
  5. 一分钟学会看k线图_看K线图:阴跌如钝刀
  6. Android内存分析工具:Memory Profiler
  7. LeetCode 949. 给定数字能组成的最大时间(暴力)
  8. 机器人--寒暄库(4)
  9. 微信小程序云开发视频教程上线啦
  10. angular ts 表格_Angular 2的表格控件
  11. 技术大会值得参加吗?
  12. 计算机在桌面被删了如何恢复,桌面文件被删除怎么恢复?电脑文件误删恢复教程...
  13. arm开发板开发环境搭建
  14. 生而神灵,弱而能言,幼而徇齐,长而敦敏,成而聪明
  15. 群聊比单聊,为什么复杂这么多?
  16. 搭建机器人电控系统——PID算法——位置式、增量式、模糊式PID
  17. 集线器,转发器,网桥,以太网交换机
  18. 最新天龙八部环境-GS环境教程-【长期稳定版本】+ 视频教程
  19. 《神经科学:探索脑》学习笔记(第7章 神经系统的结构)
  20. win2008 启用 mongodb 服务出错 1053 的解决方法

热门文章

  1. mysql 常用数据库连接池_常见的数据库连接池
  2. 楼梯计算机公式,各种楼梯面积的计算公式汇总
  3. android 服务自动结束,Android服务自动停止
  4. html5边框闪烁,HTML – CSS框阴影动画像素艺术闪烁
  5. java获取网络图片_有了这50套Java毕设项目(源码 案例),offer拿到手软,无偿分享...
  6. 复杂电网三相短路计算的matlab仿真,复杂电网三相短路计算的MATLAB仿真电力系统分析课设报告 - 图文...
  7. linux训练python出现killed_Linux 查看进程被杀死的详情
  8. powerdesigner mysql 自增主键_PowerDesigner Mysql 主键自增、初始值、字符集
  9. win7计算机找不到脚本文件夹,win7系统TXT文件打开提示找不到脚本文件的解决方法...
  10. linux添加删除回环地址,CentOS7如何添加本地回环地址?CentOS7添加本地回环地址的方法...