Using ulimit to limit the amount of memory a script can use
5,077
Solution 1
I was able to get the script to error out with the -v
option:
#!/bin/bash
ulimit -v 100000
for i in {1..10000000}
do
x="x"$x
done
The Bash man page says:
-m The maximum resident set size (many systems do not honor this limit)
Solution 2
Try to limit virtual memory:
ulimit -v 1024
Related videos on Youtube
Author by
Araejay
Updated on September 17, 2022Comments
-
Araejay over 1 year
I have an ubuntu system and I have a script that runs regularly. I need to limit the maximum amount of memory that this script can use. AFAIK
ulimit
is the command to do this, however I can't get it to work.For example I have the following script:
#! /bin/bash ulimit -m 1024 X="x" seq 100 | while read LINE ; do X="$X$X" done
This should make
$X
grow in size, and this example is just the kind of thing I want to limit. However the ulimit call doesn't seem to work. I can run the script OK, and it doesn't die, andtop
shows me that the script gets lots of memory. What am I doing wrong? How can I force this script to never user more than a certain amount of memory?