当前位置: 首页 > news >正文

【busybox记录】【shell指令】timeout

目录

内容来源:

【GUN】【timeout】指令介绍

【busybox】【timeout】指令介绍

【linux】【timeout】指令介绍

使用示例:

例子1

例子2

例子3

例子4

常用组合指令:

指令不常用/组合用法还需继续挖掘:


内容来源:

        GUN : Coreutils - GNU core utilities

        busybox v1.36.1 : 【busybox记录】【shell指令】基于的Busybox的版本和下载方式-CSDN博客

【GUN】【timeout】指令介绍

timeout:执行有时间限制的命令
timeout 将运行给定的命令,如果该命令在指定的时间间隔后仍在运行,则终止该命令。
简介:
timeout [option] duration command [arg]...
命令不能是一个特殊的内置实用程序(参见第2.10节[特殊内置实用程序],第10页)。
程序接受以下选项。请参见第2章[常用选项],第2页。
选项必须在操作数之前。‘--preserve-status’在超时时返回托管命令的退出状态,而不是指示超时的特定退出状态。如果托管命令支持运行一段不确定的时间,这很有用。
‘--foreground’不要创建单独的后台程序组,以便托管命令可以正常使用前台TTY。这需要支持两种情况:对命令进行超时计时,以及不从交互式shell调用超时。1. 命令是交互式的,需要从终端读取2. 用户希望支持从终端直接向命令发送信号(例如按Ctrl-C)在这种操作模式下,任何子命令都不会超时。此外,SIGCONT不会发送到命令,因为前台进程通常不需要它,并且可能导致本身就是监视器的程序(例如GDB)出现间歇性信号传递问题。
‘-k duration’
‘--kill-after=duration’通过发送' KILL '信号来确保被监视的命令被终止。指定的持续时间从timeout向命令发送初始信号的时间点开始计算,而不是从命令启动的时间点开始计算。如果timeout命令的主要持续时间或为该选项指定的持续时间为0,则此选项不起作用。如果选定的信号没有终止命令,或者因为信号被阻塞或忽略,或者命令花费太长时间(例如清理工作)在一定时间内终止自己,则此选项可能很有用。
‘-s signal’
‘--signal=signal’在超时时将此信号发送给命令,而不是默认的' TERM '信号。信号可以是一个名称,如“HUP”或一个数字。参见第5页第2.3节[信号规范]。
‘-v’
‘--verbose’诊断为标准错误,超时后发送的任何信号。duration是当前或C语言环境中的浮点数(参见第2.12节[浮点],第10页),后跟一个可选单位:‘s’ for seconds (the default)‘m’ for minutes‘h’ for hours‘d’ for days
持续时间为0禁用关联的超时。实际超时时间取决于系统条件,在指定亚秒级超时时应特别考虑这一点。
退出状态:
124 如果命令超时,并且没有指定--preserve-status
125 如果timeout本身失败
126 如果找到命令但无法调用
127 如果找不到命令
137 如果命令或超时被发送KILL(9)信号(128+9)
命令的退出状态
在' KILL(9) '信号的情况下,timeout返回退出状态137,无论该信号是发送给command还是发送给timeout本身,也就是说,这些情况无法区分。
在后一种情况下,命令进程可能在超时被强制终止后仍处于活动状态。

【busybox】【timeout】指令介绍

NA

【linux】【timeout】指令介绍

[root@localhost bin]# timeout --help
用法:timeout [选项] 停留时间 命令 [参数]...或:timeout 选项
运行指定命令,在指定的停留时间后若该命令仍在运行则将其中止。必选参数对长短选项同时适用。--preserve-statusexit with the same status as COMMAND, even when thecommand times out--foregroundwhen not running timeout directly from a shell prompt,allow COMMAND to read from the TTY and get TTY signals;in this mode, children of COMMAND will not be timed out-k, --kill-after=DURATIONalso send a KILL signal if COMMAND is still runningthis long after the initial signal was sent-s, --signal=SIGNALspecify 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-v, --verbose  diagnose to stderr any signal sent upon timeout--help		显示此帮助信息并退出--version		显示版本信息并退出DURATION is a floating point number with an optional suffix:
's' for seconds (the default), 'm' for minutes, 'h' for hours or 'd' for days.
A duration of 0 disables the associated timeout.If the command times out, and --preserve-status is not set, 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.  It may be necessary
to use the KILL (9) signal, since this signal cannot be caught, in which
case the exit status is 128+9 rather than 124.GNU coreutils 在线帮助:<https://www.gnu.org/software/coreutils/>
请向 <http://translationproject.org/team/zh_CN.html> 报告 timeout 的翻译错误
完整文档请见:<https://www.gnu.org/software/coreutils/timeout>
或者在本地使用:info '(coreutils) timeout invocation'

使用示例:

例子1

# 在20秒后发送默认的TERM信号到短暂的sleep 1。

# 因为它在给定的持续时间之前终止,所以'timeout'返回与命令相同的退出状态,在这种情况下为0。

timeout 20 sleep 1

例子2

# 5秒后发送INT信号给sleep命令。5秒后返回,退出状态为124,表示信号已发送。

timeout -s INT 5 sleep 20

例子3

#同样地,但是该命令忽略INT信号,因为它是通过'env——ignore-signal'启动的。因此,'sleep'在整整20秒后定期终止,'timeout'仍然以退出状态124返回。

timeout -s INT 5s env --ignore-signal=INT sleep 20

例子4

#同样,但是在初始INT信号后3秒发送KILL信号。因此,'sleep'在大约8秒(5+3)后被强制终止,'timeout'返回退出状态为137。

timeout -s INT -k 3s 5s env --ignore-signal=INT sleep 20

常用组合指令:

NA

指令不常用/组合用法还需继续挖掘:

NA

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • MySQL高阶1892-页面推荐2
  • 基于windows的mysql5.7安装配置教程
  • 如何使用Spring Cloud Gateway搭建网关系统
  • VUE面试题(单页应用及其首屏加载速度慢的问题)
  • A. Make All Equal
  • 【C++】C++ STL探索:Priority Queue与仿函数的深入解析
  • Winform管道模拟实现
  • 如何创建模板提示prompt
  • Node-RED和物联网分析:实时数据处理和可视化平台
  • Go协程及并发锁应用指南
  • Winform自定义控件和用户控件
  • 大数据新视界 --大数据大厂之算法在大数据中的核心作用:提升效率与智能决策
  • 大模型团队招人(校招):阿里巴巴智能信息,2025届春招来了!
  • 网站建设的服务器该如何选择?
  • 八股文-多线程、并发
  • CentOS从零开始部署Nodejs项目
  • JavaScript-Array类型
  • javascript面向对象之创建对象
  • mongodb--安装和初步使用教程
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • Python - 闭包Closure
  • Spring思维导图,让Spring不再难懂(mvc篇)
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • windows下mongoDB的环境配置
  • Zsh 开发指南(第十四篇 文件读写)
  • 仿天猫超市收藏抛物线动画工具库
  • 工作中总结前端开发流程--vue项目
  • 回流、重绘及其优化
  • 前端每日实战:61# 视频演示如何用纯 CSS 创作一只咖啡壶
  • 前端性能优化--懒加载和预加载
  • 设计模式走一遍---观察者模式
  • C# - 为值类型重定义相等性
  • hi-nginx-1.3.4编译安装
  • 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解 ...
  • ​软考-高级-信息系统项目管理师教程 第四版【第14章-项目沟通管理-思维导图】​
  • #1015 : KMP算法
  • #C++ 智能指针 std::unique_ptr 、std::shared_ptr 和 std::weak_ptr
  • #QT(TCP网络编程-服务端)
  • #单片机(TB6600驱动42步进电机)
  • #周末课堂# 【Linux + JVM + Mysql高级性能优化班】(火热报名中~~~)
  • (20050108)又读《平凡的世界》
  • (3)选择元素——(17)练习(Exercises)
  • (4) PIVOT 和 UPIVOT 的使用
  • (cljs/run-at (JSVM. :browser) 搭建刚好可用的开发环境!)
  • (C语言)深入理解指针2之野指针与传值与传址与assert断言
  • (HAL库版)freeRTOS移植STMF103
  • (附源码)c#+winform实现远程开机(广域网可用)
  • (强烈推荐)移动端音视频从零到上手(上)
  • (四)模仿学习-完成后台管理页面查询
  • (轉貼) 寄發紅帖基本原則(教育部禮儀司頒布) (雜項)
  • .Net Core与存储过程(一)
  • .NET 的静态构造函数是否线程安全?答案是肯定的!
  • .NET 药厂业务系统 CPU爆高分析
  • .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态
  • .netcore如何运行环境安装到Linux服务器