ulimit funktioniert nicht richtig

612
mursalin

ich versuche, die speicherauslastung eines prozesses mit ulimit zu begrenzen

ulimit -Sv 100000 ulimit -St 10 fakechroot ./compiledfile 

Ich führe den Befehl in demselben Terminal aus (ich verwende Ubuntu 16.04) und der Quellcode der kompilierten Datei ist

#include<stdio.h> int main() { while(1) { malloc(110000000); pf("allocated : %d\n",i); } return 0; } 

Der Prozess sollte wegen Speicherlimit beendet werden, aber er läuft bis zum Ablauf der Zeitbegrenzung. Ich verstehe nicht warum. Ich bin Novize, verzeihen Sie mir, wenn die Frage dumm ist .. Jede Hilfe oder ein Vorschlag wird geschätzt. Danke

0
Nicht sicher, aber erzeugt die "fakechroot" einen neuen Prozess? "ulimit" beeinflusst nur den aktuellen Prozess. Sie könnten versuchen, ein Skript mit `ulimit` und Ihrer` ./compiledfile` in `fakechroot` auszuführen Joe P vor 7 Jahren 0
@joe P ich habe ohne fakechroot (./compiledfile) bt keine Änderung versucht mursalin vor 7 Jahren 0
Sie sollten den Rückgabewert von 'malloc' überprüfen. Es wird "NULL" zurückgegeben, wenn die Zuweisung aus Speichergründen oder aus anderen Gründen fehlschlägt. x22 vor 7 Jahren 1

0 Antworten auf die Frage