使用ulimit来限制脚本可以使用的内存量

我有一个Ubuntu系统,我有一个定期运行的脚本。 我需要限制这个脚本可以使用的最大内存量。 AFAIK ulimit是这样做的命令,但我不能得到它的工作。

例如,我有以下脚本:

 #! /bin/bash ulimit -m 1024 X="x" seq 100 | while read LINE ; do X="$X$X" done 

这应该使$X变大,这个例子就是我想要限制的东西。 然而ulimit调用似乎不起作用。 我可以运行脚本OK,它不会死, top显示脚本得到大量的内存。 我究竟做错了什么? 我怎样才能强制这个脚本永远不会超过一定量的内存?

我可以通过-v选项使脚本出错:

 #!/bin/bash ulimit -v 100000 for i in {1..10000000} do x="x"$x done 

Bash手册页说:

  -m最大驻留集大小(许多系统不尊重
              这个限制)

尝试限制虚拟内存:

 ulimit -v 1024