(set or report file size limit)
Mit dem in die POSIX-Shell sh eingebauten Kommando ulimit können Sie
abfragen, welche Grenzwerte für die aktuelle Shell oder ihre Sohnprozesse festgelegt sind
die Grenzwerte einzeln für die aktuelle Shell und alle ihre Sohnprozesse ändern.
Als Benutzer ohne POSIX-Verwalter-Privilegien können Sie diese Werte nur herabsetzen.
Die neuen Werte gelten für die aktuelle Shell und ihre Sohnprozesse.
Ein herabgesetzter Wert kann erst wieder erhöht werden, wenn die Shell, in der Sie den Grenzwert herabgesetzt haben, beendet wurde.
Syntax
Format 1: | ulimit[ -H][ -S][ option] |
Format 2: | ulimit[ -H][ -S][ option] grenzwert |
Grenzwerte abfragen
ulimit schreibt die durch option abgefragten Grenzwerte auf die Standard-Ausgabe.
Abfragen eines harten Grenzwerts (hard limit).
Abfragen eines weichen Grenzwerts (soft limit). Weder -H noch -S angegeben:
Durch Optionen können Sie die abzufragenden Grenzwerte angeben. Sie können die Optionen beliebig kombinieren. Keine Option angegeben:
Abfrage aller Grenzwerte. Die weiteren Optionen sind unter Format 2 beschrieben. |
Grenzwerte setzen
ulimit setzt den durch option bezeichneten Grenzwert auf grenzwert. Sie können mit jedem Aufruf immer nur einen Grenzwert neu setzen.
Setzen eines harten Grenzwerts (hard limit). Als Benutzer ohne POSIX-Verwalter-Privilegien können Sie jeden harten Grenzwert herabsetzen. Aber nur der POSIX-Verwalter darf einen harten Grenzwert erhöhen.
Setzen eines weichen Grenzwerts (soft limit). Jeder Benutzer kann einen weichen Grenzwert auf einen Wert kleiner dem harten Grenzwert setzen. Weder -H noch -S angegeben:
Durch Optionen können Sie die zu setzenden Grenzwerte angeben. Die folgenden Grenzwerte, die in getrlimit() [4] genauer beschrieben sind, stehen Ihnen für die aktuelle Shell und alle ihre Sohnprozesse zur Verfügung:
(all) Abfrage aller Grenzwerte.
(file size) Maximale Dateigröße (in 512-byte-Blöcken), die Sie anlegen (schreiben) dürfen; das Lesen ist nicht beschränkt. Ist file size gleich 0, können keine Dateien angelegt werden. Wenn Sie den festgelegten Standardwert überschreiten, erhalten Sie (abhängig vom Kommando mit dem Sie die Datei erzeugen) entweder eine Fehlermeldung vom entsprechenden Kommando oder die neue Datei enthält nur die Daten bis zum Erreichen des Grenzwertes. Beispiel für die Dateigröße Nach ls -lR >datei enthält datei nur so viele Bytes, wie der aktuelle Grenzwert erlaubt.
(memory) Maximale Größe des heap (in Kbyte) eines Prozesses.
(number of filedescriptors) Maximale Anzahl (geöffneter) Dateikennzahlen eines Prozesses plus 1.
(t - time) Maximal verbrauchbare CPU-Zeit (in Sekunden) für einen Prozess. Keine Option angegeben.
legt den Grenzwert für die aktuelle Shell und jeden ihrer Sohnprozesse entsprechend der angegebenen Option fest. Für grenzwert können Sie als Benutzer ohne POSIX-Verwalter-Privilegien nur Werte angeben, die kleiner sind als der aktuelle Grenzwert. Als POSIX-Verwalter können Sie mit grenzwert den aktuellen Grenzwert auch erhöhen. Geben Sie für grenzwert die Zeichenkette unlimited an, dann wird der Grenzwert auf den maximal möglichen Wert gesetzt. |
Fehler
Sie haben versucht, den aktuellen Grenzwert zu erhöhen. Dies darf nur der POSIX-Verwalter. |
Endestatus
0 | bei erfolgreicher Ausführung des Kommandos |
>0 | Rückweisen eines höheren Limits oder Fehler |
Internationale Umgebung
Die folgenden Umgebungsvariablen beeinflussen die Ausführung des Kommandos ulimit: LANG Gibt einen Standardwert für die Variablen für die internationale Umgebung an, die nicht gesetzt oder Null sind. Ist LANG nicht gesetzt oder Null, wird der entsprechende Standardwert der internationalen Umgebung verwendet. Enthält eine der Internationalisierungsvariablen eine ungültige Einstellung, verhält sich das Kommando so, als sei keine der Variablen definiert worden. LC_ALL Ist diese Variable auf einen Wert gesetzt, d. h. ist sie nicht leer, überschreibt dieser Wert die Werte aller übrigen Internationalisierungsvariablen. LC_CTYPE Legt die internationale Umgebung für die Interpretation der Byte-Folgen eines Datentexts als Zeichen fest (z.B. Singlebytezeichen im Unterschied zu Mehrbytezeichen in Argumenten und Eingabedateien) sowie die Einteilung der Zeichen in Groß- und Kleinbuchstaben und deren Übereinstimmung. LC_MESSAGES Legt die internationale Umgebung für Format und Inhalt der Diagnosemeldungen fest, die in die Standardfehlerausgabe geschrieben werden. NLSPATH Legt den Pfad der Meldungsdateien für LC_MESSAGES fest. |
Beispiel 1
Der aktuelle weiche Grenzwert für die maximale Anzahl der Dateikennzahlen wird erhöht. Dies ist jedem Benutzer möglich, solange der neue Grenzwert unterhalb des harten Grenzwerts liegt. Der neue Grenzwert ist auch in einer Subshell gültig.
|
Beispiel 2
Der aktuelle Grenzwert für die maximale Dateigröße wird abgefragt und anschließend herabgesetzt. Diesen Grenzwert kann nur der POSIX-Verwalter wieder erhöhen.
Der neue Grenzwert ist auch in einer Subshell gültig. Ab jetzt können nur noch Dateien angelegt werden, die kleiner sind als 20.000 * 512 byte. |
Siehe auch
getrlimit(), signal(), ulimit() [4] |