Linux下timeout命令

网友投稿 1225 2022-09-03

Linux下timeout命令

Linux下timeout命令

起因是因为挂在了nfs,当nfs服务器修改了IP或者宕机了,在客户端执行命令df -h就会hung住。我在ansible里面写脚本会用到了df -h命令。导致ansible一直Hung住。于是在脚本里面加了timeout命令。

语法格式:

timeout [OPTION] DURATION COMMAND [ARG]…DURATION可以是正整数或浮点数,后跟可选的后缀:​

s – 秒 (默认)m – 分钟h – 小时d – 天如果不添加任何单位,默认是秒。如果DURATION为0,则关联的超时是禁用的。​

实例5秒后终止ping操作:

[root@ansible /]# timeout 5 ping baidu.comPING a.shifen.com (110.242.68.3) 56(84) bytes of data.64 bytes from 110.242.68.3 (110.242.68.3): icmp_seq=1 ttl=53 time=12.0 ms64 bytes from 110.242.68.3 (110.242.68.3): icmp_seq=2 ttl=53 time=12.1 ms64 bytes from 110.242.68.3 (110.242.68.3): icmp_seq=3 ttl=53 time=11.9 ms64 bytes from 110.242.68.3 (110.242.68.3): icmp_seq=4 ttl=53 time=11.5 ms64 bytes from 110.242.68.3 (110.242.68.3): icmp_seq=5 ttl=53 time=12.0 ms

10分钟之后终止ping操作:

[root@ansible /]# timeout 10m ping baidu.com

1天之后终止ping操作:

[root@ansible /]# timeout 1d ping baidu.com

停掉卡住的进程SIGTERM,当超过时间限制时发送的默认信号可以被某些进程捕获或忽略。在这种情况下,进程在发送终止信号后继续运行。​

要确保被执行的的命令终止,请使用-k(—kill after)选项,后面加一个时间。当达到给定的时间限制后会强制结束。

在下面的示例中,timeout命令运行一分钟,如果命令没有结束,将在10秒后终止命令:

[root@ansible /]# timeout -k 10s 1m sh 1.sh

运行在前台默认情况下,timeout在后台运行托管命令。如果要在前台运行该命令,请使用—foreground选项:

[root@ansible /]# timeout --foreground 5m ./1.sh

LINUX

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Centos 7.9 下创建LVM流程
下一篇:PHP开发各种规范,面试有用(php高级开发工程师面试题)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~