为程序设置超时

简介:

timeout 是个奇妙的Linux命令,它可以控制程序运行的时间,这对于我们希望控制程序的运行时间非常有用。


timeout在CentOS 6平台上,从属于软件包coreutils

1
2
3
4
# which timeout
/usr/bin/timeout
# rpm -qf /usr/bin/timeout
coreutils-8.4-19.el6_4.2.x86_64


timeout的原理很简单,一个简单的计时器,一个kill命令,其中-s 可以跟kill的参数,具体怎么杀,就看它。


man timeout仅仅半页,如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
TIMEOUT(1)                       User Commands                      TIMEOUT(1)
NAME
        timeout - run a  command  with a  time  limit
SYNOPSIS
        timeout [OPTION] NUMBER[SUFFIX] COMMAND [ARG]...
        timeout [OPTION]
DESCRIPTION
        Start  COMMAND,  and  kill  it  if  still running after NUMBER seconds.  SUFFIX may be ‘s’  for  seconds (the default), ‘m’  for  minutes, ‘h’
        for  hours or ‘d’  for  days.
        Mandatory arguments to long options are mandatory  for  short options too.
        -s, --signal=SIGNAL
               specify the signal to be sent on timeout.  SIGNAL may be a name like ‘HUP’ or a number.  See ‘ kill  -l‘  for  a list of signals
        --help display this help and  exit
        --version
               output version information and  exit
        If the  command  times  out,  then  exit  with status 124.  Otherwise,  exit  with the status of COMMAND.  If no signal is specified, send the
        TERM signal upon timeout.  The TERM signal kills any process that does not block or catch that signal.  For other processes, it may be
        necessary to use the KILL (9) signal, since this signal cannot be caught.
AUTHOR
        Written by Padraig Brady.



用法举例

1
timeout 120  command


上面的command命令如果在120秒内完成,则平安结束,运行超过120秒后将被杀死。


脚本经常是傻乎乎的一口气跑到完,搞得我们需要写另一个脚本定期去杀它。自打有了timeout命令,腰也不疼了,腿也不酸了,跑跑歇歇更健康。


一句话,我们在脚本里或者crontab里就不用再造轮子了。










本文转自 紫色葡萄 51CTO博客,原文链接:http://blog.51cto.com/purplegrape/1302902,如需转载请自行联系原作者
目录
相关文章
|
5月前
|
人工智能 边缘计算 安全
阿里云 ESA「函数和Pages」云栖发布:代码即部署,边缘原生落地
阿里云边缘安全加速(ESA)发布全新“函数和Pages”平台,国内首个实现站点托管与边缘函数原生打通,支持全球3200+节点极速部署、企业级安全防护及自动化发布流程。通过GitHub一键集成,结合AI编程助手,实现从代码到全球上线的分钟级交付,定义边缘原生与AI原生的下一代开发体验。
509 0
阿里云 ESA「函数和Pages」云栖发布:代码即部署,边缘原生落地
|
Java 定位技术 API
标准坐标系与火星坐标系(高德)百度坐标系之间互转
这里先给大家介绍几个坐标系: 1.WGS84:国际坐标系,为一种大地坐标系,也是目前广泛使用的GPS全球卫星定位系统使用的坐标系。2.GCJ02:火星坐标系,是由中国国家测绘局制订的地理信息系统的坐标系统。
4774 0
overleaf 插入图片,引用图片,图标标题Fig与文章引用Figure不一致解决
overleaf 插入图片,引用图片,图标标题Fig与文章引用Figure不一致解决
12177 1
|
前端开发 IDE 编译器
HBuilderX 最新安装使用教程,附详细图解,持续更新
HBuilderX 最新安装使用教程,附详细图解,持续更新
|
4月前
|
移动开发 监控 小程序
校园系统小程序源码搭建全流程:基于 Uni-app/TP6,快速落地校园服务生态
在教育数字化转型背景下,校园小程序整合教务、生活、社交等全场景服务,通过Uni-app+TP6实现多端覆盖与高效开发,支持校园卡、食堂点餐、家长端等功能,助力学校构建稳定、低成本的智慧校园生态。
|
3月前
|
人工智能 运维 监控
AI Agent 职业路线全景解析:体系化构建开发者职业竞争力
本文基于阿里云开发者社区视角,系统梳理AI Agent五大职业路径:技术研发、产品方案、运营优化、交叉治理及核心能力构建,涵盖技术栈、场景适配、数据迭代、合规治理等关键维度,为开发者提供可落地的职业发展指南。(239字)
248 2
|
存储 NoSQL MongoDB
掌握MongoDB索引优化策略:提升查询效率的关键
在数据库性能调优中,索引是提升查询效率的利器。本文将带你深入了解MongoDB索引的内部工作原理,探讨索引对查询性能的影响,并通过实际案例指导如何针对不同的查询模式建立有效的索引。不仅将涵盖单一字段索引,还会探讨复合索引的使用,以及如何通过分析查询模式和执行计划来优化索引,最终实现查询性能的最大化。
|
机器学习/深度学习 人工智能 自然语言处理
人工智能与情感计算:AI如何理解人类情感
人工智能与情感计算:AI如何理解人类情感
2625 20
|
12月前
|
数据采集 存储 人工智能
RFID工业产线采集
在智能化工业时代,RFID(射频识别)技术作为先进的自动识别手段,在工业产线数据采集方面发挥核心作用。它通过无线电信号实现非接触式信息读写,贯穿生产全流程,从原材料入库到产品出货,大幅提升效率与可追溯性。尽管面临成本和数据安全挑战,但随着技术进步,RFID将与物联网、人工智能深度融合,推动工业4.0和智能制造发展,助力企业实现高效、智能的生产管理。