linux 命令超时设置,如何在Linux中运行具有时间限制(超时)的命令

有时Unix命令可能会运行很长时间而没有给出最终输出,或者进行不时给出部分输出的处理。在这种情况下,我们希望设置一个时间范围,在该时间范围内,完成该过程的命令杆将中止。这可以通过使用以下选项来实现。

使用超时工具

如果命令行不能在给定的时间内完成,超时工具将强制执行中止命令。下面是语法和示例。

语法timeout DURATION COMMAND [ARG]...

其中Duration是希望命令运行的秒数

如果执行未完成,则在中止之前。在我们掌握的时间里,

s - seconds

m - minutes

h - hours

d - days

示例

在下面的示例中,我们使用ping命令对我们的网站执行ping操作,并且该过程仅持续5秒钟,此命令将自动停止运行。$ timeout 5s ping nhooo.com

运行上面的代码给我们以下结果-PING nhooo.com (94.130.82.52) 56(84) bytes of data.

64 bytes from nhooo.com (94.130.82.52): icmp_seq=1 ttl=128 time=126 ms

64 bytes from nhooo.com (94.130.82.52): icmp_seq=2 ttl=128 time=126 ms

64 bytes from nhooo.com (94.130.82.52): icmp_seq=3 ttl=128 time=126 ms

64 bytes from nhooo.com (94.130.82.52): icmp_seq=4 ttl=128 time=126 ms

64 bytes from nhooo.com (94.130.82.52): icmp_seq=5 ttl=128 time=127 ms

使用timelimit

需要安装timelimit程序,以获得此功能,以便在特定时间后终止命令。它将通过警告信号,然后在超时后发送终止信号。您也可以传递argumnets之类的参数,例如killtime,warntime等。因此,此命令为我们提供了更好的控件来警告和杀死命令。

首先,我们使用以下命令安装程序。sudo apt-get install timelimit

接下来,我们看下面的例子来使用时间限制。这里-t指定发送warnsig之前进程的最大执行时间(以秒为单位),而T是发送warnsig之后发送killsig之前进程的最大执行时间。timelimit -t6 -T12 ping nhooo.com

运行上面的代码给我们以下结果-PING nhooo.com (94.130.82.52) 56(84) bytes of data.

64 bytes from nhooo.com (94.130.82.52): icmp_seq=1 ttl=128 time=127 ms

64 bytes from nhooo.com (94.130.82.52): icmp_seq=2 ttl=128 time=126 ms

64 bytes from nhooo.com (94.130.82.52): icmp_seq=3 ttl=128 time=126 ms

64 bytes from nhooo.com (94.130.82.52): icmp_seq=4 ttl=128 time=127 ms

64 bytes from nhooo.com (94.130.82.52): icmp_seq=5 ttl=128 time=128 ms

64 bytes from nhooo.com (94.130.82.52): icmp_seq=6 ttl=128 time=126 ms

timelimit: sending warning signal 15

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值