timeout是一个命令行实用程序,它运行指定的命令,如果在给定的时间段后仍在运行,则终止该命令。timeout命令是GNU核心实用程序软件包的一部分,该软件包几乎安装在所有Linux发行版中

如何使用

语法格式:

timeout [OPTION] DURATION COMMAND [ARG]...

DURATION可以是正整数或浮点数,后跟可选的后缀:

  • s – 秒 (默认)
  • m – 分钟
  • h – 小时
  • d – 天

如果不添加任何单位,默认是秒。如果DURATION为0,则关联的超时是禁用的。

实例

5秒后终止ping操作:

[root@localhost ~]# timeout 5 ping www.baidu.com
PING www.a.shifen.com (61.135.169.125) 56(84) bytes of data.
64 bytes from 61.135.169.125 (61.135.169.125): icmp_seq=1 ttl=55 time=16.3 ms
64 bytes from 61.135.169.125 (61.135.169.125): icmp_seq=2 ttl=55 time=16.0 ms
64 bytes from 61.135.169.125 (61.135.169.125): icmp_seq=3 ttl=55 time=16.7 ms
64 bytes from 61.135.169.125 (61.135.169.125): icmp_seq=4 ttl=55 time=16.0 ms
64 bytes from 61.135.169.125 (61.135.169.125): icmp_seq=5 ttl=55 time=17.6 ms


5分钟之后终止ping操作:

[root@localhost ~]# timeout 5m ping www.baidu.com

1天之后终止ping操作:

[root@localhost ~]# timeout 1d ping www.baidu.com

2.5秒之后终止ping操作:

[root@localhost ~]# timeout 2.5s ping www.baidu.com
PING www.a.shifen.com (61.135.169.121) 56(84) bytes of data.
64 bytes from 61.135.169.121 (61.135.169.121): icmp_seq=1 ttl=55 time=14.9 ms
64 bytes from 61.135.169.121 (61.135.169.121): icmp_seq=2 ttl=55 time=15.6 ms
64 bytes from 61.135.169.121 (61.135.169.121): icmp_seq=3 ttl=55 time=15.6 ms

发送指定的信号

如果未给出任何信号,则当达到时间限制时,timeout将SIGTERM信号发送到受管命令。可以使用-s(-signal)选项指定要发送的信号。

发送SIGKILL信号给ping命令,5秒钟后终止:

[root@localhost ~]# sudo timeout -s SIGKILL 5s ping www.baidu.com
PING www.a.shifen.com (61.135.169.125) 56(84) bytes of data.
64 bytes from 61.135.169.125 (61.135.169.125): icmp_seq=1 ttl=55 time=17.2 ms
64 bytes from 61.135.169.125 (61.135.169.125): icmp_seq=2 ttl=55 time=16.6 ms
64 bytes from 61.135.169.125 (61.135.169.125): icmp_seq=3 ttl=55 time=16.7 ms
64 bytes from 61.135.169.125 (61.135.169.125): icmp_seq=4 ttl=55 time=16.2 ms
64 bytes from 61.135.169.125 (61.135.169.125): icmp_seq=5 ttl=55 time=16.7 ms
Killed


信号可以指定他的名字也可以指定他序号。下面使用的事SIGKILL的序号,5秒钟后终止操作:

[root@localhost ~]# sudo timeout -s 9 5s ping www.baidu.com
PING www.a.shifen.com (61.135.169.121) 56(84) bytes of data.
64 bytes from 61.135.169.121 (61.135.169.121): icmp_seq=1 ttl=55 time=15.5 ms
64 bytes from 61.135.169.121 (61.135.169.121): icmp_seq=2 ttl=55 time=16.3 ms
64 bytes from 61.135.169.121 (61.135.169.121): icmp_seq=3 ttl=55 time=14.9 ms
64 bytes from 61.135.169.121 (61.135.169.121): icmp_seq=4 ttl=55 time=16.0 ms
64 bytes from 61.135.169.121 (61.135.169.121): icmp_seq=5 ttl=55 time=22.0 ms
Killed


想要知道全部可用的信号,请使用 kill -l该命令查看全部的信号。

[root@localhost ~]# kill -l1) SIGHUP   2) SIGINT   3) SIGQUIT  4) SIGILL   5) SIGTRAP6) SIGABRT    7) SIGBUS   8) SIGFPE   9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
16) SIGSTKFLT   17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG  24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM   27) SIGPROF 28) SIGWINCH    29) SIGIO   30) SIGPWR
31) SIGSYS  34) SIGRTMIN    35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3
38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
43) SIGRTMIN+9 44) SIGRTMIN+10    45) SIGRTMIN+11    46) SIGRTMIN+12    47) SIGRTMIN+13
48) SIGRTMIN+14    49) SIGRTMIN+15    50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9  56) SIGRTMAX-8  57) SIGRTMAX-7
58) SIGRTMAX-6  59) SIGRTMAX-5  60) SIGRTMAX-4  61) SIGRTMAX-3  62) SIGRTMAX-2
63) SIGRTMAX-1  64) SIGRTMAX
[root@localhost ~]#

停掉卡住的进程

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

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

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

[root@localhost ~]# timeout -k 10s 1m sh test.sh

运行在前台

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

[root@localhost ~]# timeout --foreground 5m ./script.sh

总结

timeout命令用于运行具有时间限制的命令。通常情况下只需要给定时间限制和命令就足够了。

传播小知识:timeout限制时间命令相关推荐

  1. 【小知识】linux hash命令

    先看一段shell: 判断环境中是否存在某命令 check_program_installed() {     hash $1 > /dev/null 2>&1     if [ ...

  2. 网络工程师小知识:静态路由配置命令

    一.什么是静态路由? 二.静态路由的特点! 三.静态路由的一些配置命令 四.实验配置命令 更多配置命令,评论区留言[私信R]"学习"免费分享 #网络工程师 #华为认证 #计算机网络 ...

  3. 北斗授时设备(NTP授时服务器)科普小知识

    斗授时设备(NTP授时服务器)科普小知识 准确的时间是天文观测所必需的.天文望远镜在特定时间内的准确指向.CCD曝光时间的控制以及不同波段观测数据所进行的高精度同步比对等应用需要系统至少有亚毫秒的时间 ...

  4. Excel中关于日期时间的小知识小技巧,你还记得多少?

    点赞再看,养成习惯:星星之火,可以燎原. 微信搜索[亦心Excel]关注这个不一样的自媒体人. 本文 GitHub https://github.com/hugogoos/Excel 已收录,包含Ex ...

  5. 电脑小知识cmd命令大全

    大家平时在使用电脑的时候对电脑中的各个指令是不是特别的精通呢?很多懂得电脑的朋友都知道,电脑中的Windows旗帜图标+R就会弹出一个运行的窗口框,我们在窗口框中输入CMD然后弹出另一个窗口,我们就可 ...

  6. 使用Excel进行时间转换(附时间小知识)

    前言(自言自语) ummm-昨天帮整理数据,遇到了许多bug,虽然最终也没有成功使用这种方法(最后用matlab转换的-),但是觉得还是这样方便快捷,当然是针对比较正常的数据来说-excel里也是有很 ...

  7. listview 每行后面的小箭头_几个简单而有用的电脑小知识

    1: 怎么用批处理文件删除桌面快捷菜单的小箭头? A:在电脑记事本中,复制以下内容并保存为.bat 后缀名文件,保存在桌面双击运行即可 清除快捷菜单的小箭头! @ECHO OFF reg delete ...

  8. 不定期更新,记录一些小知识

    作者:东北大胖子 原文来源: https://tidb.net/blog/c6e3a445 不定期更新,记录一些小知识,欢迎指正,本帖尽量使用文字描述,相关图片尽量粘贴,方便大家搜索~ Mysql向T ...

  9. python 使用小知识总结(持续更新ing)

    这篇博客主要针对于使用python来进行深度学习/机器学习过程各方面小知识的总结.习惯于使用C++这种严谨的语言,改换到python这门相对来说开放式的语言需要很多学习,而作为一个菜鸡,遇到编程问题解 ...

  10. 单片机系统怎么用c语言复位,第11章 单片机小知识(复位 )

    第11章 单片机小知识(复位 ) 1 外部RST引脚复位(不断电下载程序) 2 软件复位 3 内部低压检测复位 4 看门狗复位 复位将使单片机内核及其它功能部件都处在一个确定的初始状态,并从这个状态 ...

最新文章

  1. Linux/服务器常用操作
  2. Spring Boot 应用迁移到 Java 11
  3. python创建一个有序链表_算法2-2:生成递增有序链表+两个链表合并
  4. MySQL ORDER BY IF() 条件排序
  5. BZOJ.2738.矩阵乘法(整体二分 二维树状数组)
  6. 华为2018年收入超阿里腾讯总和,任正非:华为最大问题是赚钱太多
  7. 谈谈JavaScript中的function constructor和new关键字
  8. [Luogu P2893][USACO08FEB]修路Making the Grade
  9. easyUI 属性总结
  10. 北漂程序员,何以露宿街头?
  11. 基于Python向Abaqus导入txt、dat数据(附abaqus中python二次开发课程)
  12. Ubuntu文本编辑器
  13. TOPSIS法(小白必看文章包含详细源代码及注释)
  14. 冰点还原精灵授权问题解答
  15. 华中科技大学计算机启明班,华中科技大学启明学院创新实验班管理办法
  16. #Android-中控指纹仪Live R20 开发注意事项#
  17. 《巴菲特法则》书中的精髓:用好巴菲特企业前景投资法则,股票投资稳赚不赔。
  18. 8、信息收集篇————Kali Linux自带工具
  19. echarts 绘制省份地图 [ 把不同省份的市合并在一起 ]
  20. UE4移动平台AR开发快速预览

热门文章

  1. 计算机开机黑屏风扇转,显卡开机黑屏风扇在转怎么办_电脑开机黑屏风扇一直转的原因是什么...
  2. java 判断当前时间节气,请问js获取阴历节气后根据节气判断春夏秋冬四季?该怎么写呢...
  3. 关于QQ邮箱有时候接受不到邮件的解决
  4. 第十五篇,STM32的SPI串行通信协议
  5. Matlab二元函数图像绘制
  6. Android版疯狂填字第三关,iOS/安卓版《疯狂填字3》答案攻略第140关
  7. Retina屏而被图处理
  8. SSM(Spring+SpringMVC+MyBatis)框架入门
  9. 如何替换mac word中的换行符为空格
  10. 一加手机怎么root权限_一加手机的两种ROOT权限获取教程详解