Mit dem Befehl ulimit können Benutzer ihre Limits für die aktuelle Shell anzeigen oder reduzieren. Nur der Root-Benutzer kann Beschränkungen über das festgelegte harte Limit hinaus erhöhen. Die festgelegten Beschränkungen gelten auch für alle untergeordneten Prozesse der Shell. Die Shell-Manpage bietet weitere Informationen zur Verwendung des ulimit-Befehls, ein Auszug aus der Bash-Manpage ist unten:
ulimit [-HSTabcdefilmnpqrstuvx [limit]] Provides control over the resources available to the shell and to processes started by it, on systems that allow such control. Options are interpreted as follows: -a All current limits are reported -b The maximum socket buffer size -c The maximum size of core files created -d The maximum size of a process’s data segment -e The maximum scheduling priority ("nice") -f The maximum size of files written by the shell and its children -i The maximum number of pending signals -l The maximum size that may be locked into memory -m The maximum resident set size (many systems do not honor this limit) -n The maximum number of open file descriptors (most systems do not allow this value to be set) -p The pipe size in 512-byte blocks (this may not be set) -q The maximum number of bytes in POSIX message queues -r The maximum real-time scheduling priority -s The maximum stack size -t The maximum amount of cpu time in seconds -u The maximum number of processes available to a single user -v The maximum amount of virtual memory available to the shell -x The maximum number of file locks -T The maximum number of thread
Die Syntax des ulimit-Befehls lautet:
# ulimit [options] [limit]
Benutzer verwenden den Befehl ulimit selten, um ihr eigenes Konto einzuschränken, daher sind die Optionen für diesen Befehl nicht so wichtig wie das Verstehen, was die Ausgabe anzeigt. Darüber hinaus werden einige der Grenzwerte sehr selten verwendet. Die häufig verwendeten Grenzwerte sind in der folgenden Tabelle beschrieben:
Limit | Beschreibung |
---|---|
fsize | Maximal zulässige Dateigröße im Arbeitsspeicher |
Prozessor | Maximal zulässige CPU-Zeit |
nproc | Maximale Anzahl gleichzeitig laufender Prozesse |
maxlogins | Maximale Anzahl gleichzeitiger Anmeldungen |
Um beispielsweise ein Limit für die maximale Anzahl offener Dateideskriptoren festzulegen:
# ulimit -n 512
Sie können alle aktuellen Limits anzeigen, indem Sie Folgendes eingeben:
# ulimit -a
Wenn beim Ausführen des ulimit-Befehls der folgende Fehler auftritt:
ulimit: command not found
Sie können versuchen, das folgende Paket gemäß Ihrer Wahl der Distribution zu installieren:
Verteilung | Befehl |
---|---|
OS X | brew install bash |
Debian | apt-get install bash |
Ubuntu | apt-get install bash |
Alpin | apk bash hinzufügen |
Arch Linux | pacman -S bash |
Kali-Linux | apt-get install bash |
CentOS | yum install bash |
Fedora | dnf install bash |
Raspbian | apt-get install bash |
ulimit-Befehlsbeispiele
1. Holen Sie sich die Eigenschaften aller Benutzerlimits:
# ulimit -a
2. Hartes Limit für die Anzahl gleichzeitig geöffneter Dateien erhalten:
# ulimit -H -n
3. Soft-Limit für die Anzahl gleichzeitig geöffneter Dateien abrufen:
# ulimit -S -n
4. Legen Sie das maximale Prozesslimit pro Benutzer fest:
# ulimit -u 30
5. Legen Sie die Größenbeschränkung für Core-Dumps auf n 512-Byte-Blöcke fest:
# ulimit –c n
6. Legen Sie die Größenbeschränkung für den Datenbereich auf n Kilobyte fest:
# ulimit -d n
7. Legen Sie das Schreiblimit für untergeordnete Prozessdateien auf n 512-Byte-Blöcke fest (Standard):
# ulimit -f n
8. Legen Sie die Größenbeschränkung für den physischen Speicher auf n Kilobyte fest:
# ulimit -m n
9. Legen Sie die Größenbeschränkung des Stack-Bereichs auf n Kilobyte fest:
# ulimit -s n
10. Setzen Sie das Prozesszeitlimit auf n Sekunden:
# ulimit -t n