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

use*_*463 1 linux bash ulimit

我试图使用ulimitbash shell的一个功能来限制允许程序运行的时间.例如,我试过这个:

 $   ( ulimit -t 1; ./a.out ) 
Run Code Online (Sandbox Code Playgroud)

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

bash: ulimit: cpu time: cannot modify limit: Operation not permitted
Run Code Online (Sandbox Code Playgroud)

谢谢.

Thi*_*Not 7

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

timeout 1s ./a.out
Run Code Online (Sandbox Code Playgroud)

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

timeout --signal=HUP 1s ./a.out
Run Code Online (Sandbox Code Playgroud)