ulimit kann verwendet werden, um die Speichernutzung zu begrenzen (unter anderem)
Hier ist ein Beispiel dafür, wie die Speichernutzung so niedrig eingestellt wird, dass /bin/ls
(größer als /bin/cat
) nicht mehr funktioniert, aber /bin/cat
immer noch funktioniert.
$ ls -lh /bin/ls /bin/cat
-rwxr-xr-x 1 root root 25K May 24 2008 /bin/cat
-rwxr-xr-x 1 root root 88K May 24 2008 /bin/ls
$ date > test.txt
$ ulimit -d 10000 -m 10000 -v 10000
$ /bin/ls date.txt
/bin/ls: error while loading shared libraries: libc.so.6: failed to map segment from shared object: Cannot allocate memory
$ /bin/cat date.txt
Thu Mar 26 11:51:16 PDT 2009
$
Hinweis: Wenn ich die Grenzwerte auf 1000 Kilobyte setze, funktioniert keines der beiden Programme, da sie Bibliotheken laden, die ihre Größe erhöhen. über 1000 KB.
-d Datensegmentgröße
-m maximale Speichergröße
-v Größe des virtuellen Speichers
Führen Sie ulimit -a aus, um alle Ressourcenobergrenzen anzuzeigen, die ulimits festlegen kann.