为什么“(ulimit -d 1000; firefox) &”不起作用?

bob*_*cat 3 linux firefox bash ulimit ubuntu-12.04

我正在尝试限制 的内存使用,firefox以防止它在有问题的网站上拖延整个系统。

我试过,在bash

(ulimit -d 1000; firefox) &
Run Code Online (Sandbox Code Playgroud)

这应该将内存使用限制为 1000kB。然后我打开 YouTube,注意到在 中topfirefox使用了 2.6% 的内存,或者大约 200MB,并且没有崩溃。显然,限制被忽略了。为什么会这样,我如何正确执行它?

小智 5

请改用 ulimit -v。

解释:

当前的 libc 实现仅针对小型 malloc 调整数据段的大小,大型 malloc 使用匿名 mmap()ing,因此真正限制程序的唯一方法是限制虚拟内存(-v 开关)。

希望这可以帮助。

PS:我知道这个问题很老,但没能通过谷歌找到解决方案,所以还是决定回答。