首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux:基于CPU时间的超时

Linux:基于CPU时间的超时
EN

Stack Overflow用户
提问于 2015-12-10 15:49:34
回答 1查看 1.1K关注 0票数 3

是否有一种方法可以根据CPU执行该程序的实际时间而不是由墙上的时钟时间来实现Linux中的程序超时?这可能是因为系统负载很重,或者有大量的上下文开关会使墙时钟超时测量结果无法比较。我正在寻找Python、C或Bash的解决方案。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-10 16:28:25

下面是我编写的类似于超时命令的shell脚本。

代码语言:javascript
复制
ctimeout timeout command arg ...

如果该命令的CPU时间超过超时值(以秒为单位),则该命令将被终止。

它使用超极限-t内置命令。底层系统调用七度限以CPU时间的秒数作为参数,因此超时参数应该是一个整数。巴什的ulimit -t拒绝使用小数点的参数。ksh接受带有小数点的参数,但舍入到最接近的整秒。

任何带有嵌入式空格的参数都应该被\'\"包围。

代码语言:javascript
复制
#!/bin/sh
if test $# -lt 2
then
    echo "Usage: $0 timeout command arg ..."
    exit 126
fi
ulimit -t $1 || { echo "Error: cannot set timeout $1"; exit 126; }
shift
eval "$@"
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34206171

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档