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

Ama*_*rus 5 linux ubuntu memory bash ulimit

我有一个 ubuntu 系统,我有一个定期运行的脚本。我需要限制此脚本可以使用的最大内存量。AFAIKulimit是执行此操作的命令,但是我无法使其正常工作。

例如,我有以下脚本:

#! /bin/bash

ulimit -m 1024

X="x"
seq 100 | while read LINE ; do
    X="$X$X"
done
Run Code Online (Sandbox Code Playgroud)

这应该使$X规模增长,而这个例子正是我想要限制的那种事情。但是 ulimit 调用似乎不起作用。我可以正常运行脚本,它不会死,并向top我显示脚本获得了大量内存。我究竟做错了什么?如何强制此脚本从不使用超过一定数量的内存?

Den*_*son 5

我能够使用该-v选项使脚本出错:

#!/bin/bash

ulimit -v 100000
for i in {1..10000000}
do
    x="x"$x
done
Run Code Online (Sandbox Code Playgroud)

Bash 手册页说:

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