如何使用ulimit限制进程的运行时间?

时间:2013-10-02 16:24:55

标签: linux bash ulimit

我正在尝试使用bash shell的一个功能ulimit来限制允许程序运行的时间。例如,我试过这个:

 $   ( ulimit -t 1; ./a.out ) 

但它不起作用。它允许./a.out程序运行直到它停止(5秒)。 有人知道怎么做吗?顺便说一句,我试验了-Hulimit命令行上,但它只是给出了这个错误:

bash: ulimit: cpu time: cannot modify limit: Operation not permitted

感谢。

1 个答案:

答案 0 :(得分:7)

ulimit不能限制程序运行时间,只能限制CPU时间。如果您有GNU Coreutils,则可以改为使用timeout命令:

timeout 1s ./a.out

这将在一秒后kill你的程序。您可以使用-s--signal指定要发送的信号,例如

timeout --signal=HUP 1s ./a.out