Linux:使“ulimit”限制在生成的“子进程”之间累积

Linux:使“ulimit”限制在生成的“子进程”之间累积

假设程序 #1 正在启动程序 #2,而程序 #2 正在启动程序 #3。

如果我打电话

ulimit -t 10

在调用程序#1之前,每个程序将分配10秒的CPU时间。

我可以将此限制应用于所有 3 个程序使用的总 CPU 时间吗?基本上,我指的是“top -S”显示的时间 - 这将显示包括所有生成的“子进程”在内的总累计 CPU 时间。

对我来说最有用的是让这种累积行为适用于“-t”(CPU 时间)。但如果我可以让它也适用于其他标志(最大内存使用等),那就太好了。

如果 ulimit 不能做到这一点,还有其他方法吗?

答案1

答案2

这个限制是按流程征收;只要它们被视为不同的进程(top、htop、ps),每个进程都会有限制。重写代码并使第二和第三个程序成为工作线程。

相关内容