如果我要通过命令行运行一些Python,例如,如下所示:

cat <<'PYSTUFF' | python
print "Hi"
print "There"
print "Friend"
PYSTUFF


这很好用,并输出REPL的响应。我要做的是限制此命令的执行。例如,如果我写了:

cat <<'PYSTUFF' | python
while(True):
    print "Oh no!"
PYSTUFF


那是不好的,最终会导致崩溃。我如何将执行限制为“如果花费的时间超过x,请杀死它”。我尝试使用ulimit -t 2,但似乎无法实现我想要的功能。

最佳答案

感谢@Biffen使用timeout命令非常有效。在Mac上,我使用gtimeout。我的整个命令如下所示:

cat <<'PYSTUFF' | gtimeout 0.5 python
while(True): print("hi")
PYSTUFF

08-25 04:46