我正在尝试使用bash shell的一个功能ulimit
来限制允许程序运行的时间。例如,我试过这个:
$ ( ulimit -t 1; ./a.out )
但它不起作用。它允许./a.out
程序运行直到它停止(5秒)。
有人知道怎么做吗?顺便说一句,我试验了-H
在ulimit
命令行上,但它只是给出了这个错误:
bash: ulimit: cpu time: cannot modify limit: Operation not permitted
感谢。
答案 0 :(得分:7)
ulimit
不能限制程序运行时间,只能限制CPU时间。如果您有GNU Coreutils,则可以改为使用timeout命令:
timeout 1s ./a.out
这将在一秒后kill
你的程序。您可以使用-s
或--signal
指定要发送的信号,例如
timeout --signal=HUP 1s ./a.out