我正在使用后台服务,有时会泄漏内存。为了防止使用Alt+ SysRq REISUB[1],我想限制一个进程或系统用户的 RAM 使用量。
我真的很想说:用户 x 可以使用最大 1 GB 的 RAM。
这可行吗?我需要某种虚拟机吗?我正在使用 Ubuntu 9.10。
答案1
限制是你的朋友。查看 -m 标志。我思考您在启动进程之前进行设置,它从那时起就适用(在当前 shell 中)。
答案2
除了 shell 命令ulimit
(对于 bash)或limit
(对于 csh)之外,您还可以使用函数从代码内部进行控制ulimit()
。