linux - 如何在Linux中实现脚本/程序的CPU时间超时?

标签 linux timeout cpu-time

重要的是不要测量某些程序/脚本的用户时间,而是测量 CPU 时间,并在超出此时间限制时终止它。

最好的方法是什么?

最明显的解决方案之一是检查某个时间步进程树,以查看请求的程序/脚本是否未超出其限制。它是在 perl 脚本 ( pshved/timeout ) 中实现的。我正在寻找其他方法

最佳答案

您可以使用ulimit(1)setrlimit(2)来限制CPU时间。如果该进程使用更多CPU时间,该进程将被自动终止。还可以指定可以忽略的软限制。

简单的例子:

#! /bin/bash
(
    ulimit -t 5
    python -c '
a, b = 0, 1
while True:
    a += b
    b += a
'
    echo $?
)
echo "..."

关于linux - 如何在Linux中实现脚本/程序的CPU时间超时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10984661/

相关文章:

java - ubuntu上JDK下无法使用javac命令编译java文件(APARAPI)

Android httpclient文件上传数据损坏和超时问题

sql - 使用两个 Contains 语句的 LINQ to SQL 查询失败

sql-server - SQL Server 查询优化 : why CPU Time is higher than Elapsed Time ? 它们与设置操作相关吗?

c++ - SELinux:重定位后无法恢复段保护:权限被拒绝

linux - 将 'grep --color=auto' 结果写入文件时颜色信息消失

linux - Grepping 不适合特定给定字符集的字符

timeout - 是否可以编写脚本来避免VPN超时

c++ - 为什么我得到不同的时间值

linux - 有什么方法可以减少 linux 作业中的 I/O 等待时间?