setrlimit 可以用于在一段时间内强制执行资源使用限制吗?

发布于 2024-11-03 08:06:54 字数 117 浏览 0 评论 0原文

我想设置限制 execv 生成的程序可以使用一定量的内存和一定量的 CPU 时间的时间。例如,我想设置一些限制,比如程序在 30 秒内不能超过 100MB,并且程序不能使用 90% 或更多的 CPU 时间超过 20 秒。

I want to set limits for how long programs spawned by execv can use a certain amount of memory and a certain amount of CPU time. For example, I want to set limits like a program cannot exceed 100MB for 30 seconds, and a program cannot use 90% or more of the CPU for more than 20 seconds.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

凤舞天涯 2024-11-10 08:06:54

您可以使用 RLIMIT_CPURLIMIT_DATA 等,但它们都没有任何持续时间或窗口的概念。如果这些对你有用,那就太好了;如果没有,您能更详细地解释您要解决的问题吗?

You can use RLIMIT_CPU, RLIMIT_DATA and friends, but none of them has any concept of time duration or windowing. If those work for you as they are, great; if not, can you explain in more detail the problem you are trying to solve?

夜清冷一曲。 2024-11-10 08:06:54

不。您需要在代码“周围”运行某种监督程序,或者作为 fork/exec 的程序,或者作为拦截 libc/系统调用的注入库。

No. You will need to run some sort of supervisor "around" the code, either as a program that will fork/exec, or as an injected library that will intercept libc/system calls.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文