При написании программы бывают случаи, когда сбегающая программа отбрасывает половину моей оперативной памяти (как правило, из-за практически бесконечных циклов при создании больших структур данных) и приводит к тому, что система становится действительно медленной, что я даже не могу уничтожить вызывающей программу. Поэтому я хочу использовать ulimit для автоматического уничтожения моей программы, когда моя программа использует ненормальный объем памяти:
$ ulimit -a
core file size (blocks, -c) 1000
data seg size (kbytes, -d) 10000
scheduling priority (-e) 0
file size (blocks, -f) 1000
pending signals (-i) 6985
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) 10000
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 6985
virtual memory (kbytes, -v) 100000
file locks (-x) unlimited
$ ./run_program
но почему моя программа все еще использует больше оперативной памяти, чем заданный предел (да, я запускаю программу в той же оболочке bash)?
Я что-то не так понял насчет ulimit?