为程序设置超时

简介:

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,如需转载请自行联系原作者
目录
相关文章
|
4天前
|
监控 中间件 PHP
hyperf-alarm-clock,一个自动计算代码执行时间,超时并发送通知的小工具
`hyperf-alarm-clock` 是专为 Hyperf 框架设计的库,用于监控代码执行时间并在超时后发送通知。支持多种通知通道,如标准输出、日志文件和飞书。适用于需要确保响应及时性的系统,如电商平台订单处理流程监控。安装简单,配置灵活,是提高系统性能和稳定性的有力工具。
12 1
hyperf-alarm-clock,一个自动计算代码执行时间,超时并发送通知的小工具
|
13天前
|
Linux iOS开发 MacOS
如何设置 Ping 命令的超时时间?
如何设置 Ping 命令的超时时间?
33 2
|
设计模式 负载均衡 Java
Feign如何设置超时时间,不同情况还真不一样,别设置错了
大家好,我是三友~~ 今天来聊一聊前段时间看到的一个面试题,也是在实际项目中需要考虑的一个问题,Feign的超时时间如何设置? Feign的超时时间设置方式并不固定,它取决于Feign在项目中是如何使用的,不同的使用方式,超时时间设置方式也不大相同,甚至还可能有坑。
Feign如何设置超时时间,不同情况还真不一样,别设置错了
|
Python
Python 技术篇-全局与当前socket超时连接时间设置方法实例演示,查看socket超时连接时间
Python 技术篇-全局与当前socket超时连接时间设置方法实例演示,查看socket超时连接时间
615 0
Python 技术篇-全局与当前socket超时连接时间设置方法实例演示,查看socket超时连接时间
|
域名解析 SQL Oracle
监听连接时间过长如何解决
当我们用PL/SQL Developer或用SQLlplus (sqlplus user/password@orcl)连接数据库的时候非常缓慢,连接有时需要30秒 左右才能正常登录到数据库,连接之后数据库一切正常。 为了能更好的解决上面的问题,我们需要有如下的一些Oracle的网络基础知识,我们一起来讨论!
监听连接时间过长如何解决
自定义超时时间用法
参数timeout_express用来设置订单支付超时的参数,该笔订单允许的最晚付款时间,逾期将关闭交易。 取值范围:1m~15d。m-分钟,h-小时,d-天,1c-当天(1c-当天的情况下,无论交易何时创建,都在0点关闭)。
538 0