开发者

Linux bash inline command to execute a program and limit the resource

开发者 https://www.devze.com 2023-03-06 07:16 出处:网络
I made a website that needs to execute some kind of C++ program (the program has been compiled). But I want to limit the resources needed by the program. The resources that I want to limit are run tim

I made a website that needs to execute some kind of C++ program (the program has been compiled). But I want to limit the resources needed by the program. The resources that I want to limit are run time and used memory. I think run time can be done with command to execute & sleep time; kill $! But that command causes some delay if the process finishes before the sleep time.

I don't know how to limit run time (without delay) and 开发者_Python百科used memory with an inline command. Is there any suggestion to do it?

Thx before... I really appreciate your help..


command ulimit is your friend

for example (ulimit -t 1; /your/program 2>/some/logfile) | head -c 100k

will do two things:

  • limit the max CPU to one second
  • limit the output to 100k


Check out the ulimit command. I've not used it but I think it will do what you want.


(ulimit -d 1000 -m 1000 -v 1000 -t 1; /your/program 2>/some/logfile) | head -c 100000

This will limit memory size as well as time. You can use ulimit -a to find out what these limits mean or read the bash man page and search for ulimit.

0

精彩评论

暂无评论...
验证码 换一张
取 消