为程序设置超时

简介:

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,如需转载请自行联系原作者
目录
相关文章
|
2月前
|
Linux iOS开发 MacOS
如何设置 Ping 命令的超时时间?
如何设置 Ping 命令的超时时间?
181 2
|
设计模式 负载均衡 Java
Feign如何设置超时时间,不同情况还真不一样,别设置错了
大家好,我是三友~~ 今天来聊一聊前段时间看到的一个面试题,也是在实际项目中需要考虑的一个问题,Feign的超时时间如何设置? Feign的超时时间设置方式并不固定,它取决于Feign在项目中是如何使用的,不同的使用方式,超时时间设置方式也不大相同,甚至还可能有坑。
Feign如何设置超时时间,不同情况还真不一样,别设置错了
|
SQL 监控 JavaScript
接口突然超时10宗罪。。。
接口突然超时10宗罪。。。
|
Python
Python 技术篇-全局与当前socket超时连接时间设置方法实例演示,查看socket超时连接时间
Python 技术篇-全局与当前socket超时连接时间设置方法实例演示,查看socket超时连接时间
621 0
Python 技术篇-全局与当前socket超时连接时间设置方法实例演示,查看socket超时连接时间
自定义超时时间用法
参数timeout_express用来设置订单支付超时的参数,该笔订单允许的最晚付款时间,逾期将关闭交易。 取值范围:1m~15d。m-分钟,h-小时,d-天,1c-当天(1c-当天的情况下,无论交易何时创建,都在0点关闭)。
550 0
|
前端开发 应用服务中间件 JavaScript
Session管理之超时设置和强制下线
关于Session,在Java Web开发中,为我们提供了很多方便,Session是由浏览器和服务器之间维护的。好吧,闲话不多说,下面让我们一步一步来实现它们。
1751 0