关键是测量的不是某些程序/脚本的用户时间,而是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 "..."