Linux timeout 命令
Linux 里有个命令叫 timeout,它可以控制一个进程的最大执行时间,超时就会被 这个命令主动终结。
源码:https://github.com/coreutils/coreutils/blob/master/src/timeout.c
用法:timeout 30 ./a.out
a.out 程序最长可以执行 30s,如果 30s 内没有结束,则会被强制终止,并且最终整个 timeout 命令返回一个错误码 (echo $?
可以查看)
实现:timeout 启动后
(1)先启动目标进程(如 a.out
)
(2)给自己注册一个 timer(api 是 setitimer
)
(3)时间到后自己收到 timer signal
(4)在 timer signal handler 里向目标进程发送中断信号
(5)发完中断信号后 timeout 进程退出并设置返回值
点评:timeout.c
整个程序不长,但是要完全看明白每一行代码是做什么的,需要对 Linux 里的基本概念要了熟于心,对 Linux 信号处理理解非常到位,对 Linux 编程非常熟悉。很值得用来做 Linux 编程入门的研习参考。
感想:timeout 这样的实用小程序真的是非常实用,把实用小程序汇编起来,就能发挥大作用。更多实用小程序可以参考 https://github.com/coreutils/coreutils/tree/master/src 目录,有心人可以基于这个写出一本书。
Linux timeout 命令相关推荐
- Linux timeout命令的使用:timeout - run a command with a time limit
timeout是一个命令行实用程序,它运行指定的命令,如果在给定的时间段后仍在运行,则终止该命令.timeout命令是GNU核心实用程序软件包的一部分,该软件包几乎安装在所有Linux发行版中. NA ...
- linux 读取命令行输入,Linux read命令的使用
1.命令简介 read命令是Shell内建命令,用于从标准输入或-u选项指定的文件描述符中读取单行,并将读取的单行根据IFS变量分割成多个字段,并将分割后的字段分别赋值给指定的变量列表var_name ...
- linux 网络 read,Linux read命令的使用
1.命令简介 read命令是Shell内建命令,用于从标准输入或-u选项指定的文件描述符中读取单行,并将读取的单行根据IFS变量分割成多个字段,并将分割后的字段分别赋值给指定的变量列表var_name ...
- Linux curl命令使用代理、以及代理种类介绍(附:curl命令详解)
目录 一.代理服务器分类: 二.Linux curl命令代理设置参数: 三.Linux curl命令设置代理举例: 1.linux curl命令设置http代理: 2.Linux curl命令设置so ...
- linux的帮助命令有,Linux帮助命令有哪些
当我们自学Linux时候,常常会遇到各种问题,对于命令方面,遇到问题我们可以用帮助命令,那么具体有哪些呢,下面由学习啦小编为大家整理了linux的帮助命令的相关知识,希望对大家有帮助! 查看linux ...
- python远程linux服务器执行命令_基于使用paramiko执行远程linux主机命令(详解)
paramiko是python的SSH库,可用来连接远程linux主机,然后执行linux命令或者通过SFTP传输文件. 关于使用paramiko执行远程主机命令可以找到很多参考资料了,本文在此基础上 ...
- linux基础命令之一
1.cpio cpio(copy in/out) 功能说明:备份文件. 语 法:cpio [-0aABckLovV][-C <输入/输出大小>][-F <备份档>][-H &l ...
- linux ping -w 命令,Linux ping 命令
Linux ping 命令 Linux ping 命令用于检测主机. 执行 ping 指令会使用 ICMP 传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运 ...
- linux 下载 命令 wget 和 curl
From:http://www.jb51.net/LINUXjishu/86326.html From :Linux curl 命令详解 - http://www.cnblogs.com/duhuo/ ...
最新文章
- linux注销、关机、重启
- 不用任何软件消除mp3的乱码
- PHP接口允许ajax跨域访问设置方法(亲测)
- spring多个视图解析器_在Spring中配置多个View解析器
- mysql 连续签到天数_签到功能实现,没有你想的那么复杂(一)
- .Net笔试题 有答案
- 楼宇自控ba系统 服务器,楼宇自控BA系统
- 第十一届蓝桥杯省赛C++组试题 第5题
- Vmware 中Linux中NAT网络异常解决方法
- linux安装java、配置 jmeter
- Oracle如何实现跨库查询
- Datawhale组队学习(Pandas) task8-文本数据
- 一些西安附近的旅游信息
- 用Python获取磁力种子
- NDIS Filter Drivers指南
- java excel 饼图,java 导入导出excle 和 生成柱状图饼状图的demo/excle数据如何转成饼状图...
- IntelliJ:idea取消启动时的默认工作空间,打开欢迎页面
- 做回归分析时import ConvergenceWarning出错的问题
- [kuanbin带我飞]的专题1---简单搜索
- 秘密潜入1-榴弹枪射速修改-Python源码