Meine Frage bezieht sich wahrscheinlich nicht speziell auf Ubuntu, aber da auf meinem Desktop dieses Betriebssystem ausgeführt wird, bin ich zu diesem Forum gekommen.
Ich versuche, die Größe der Kerndatei mit dem folgenden ulimit -c
Befehl zu ändern :
$ ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 7959
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
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) 1024
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
Ändern der Einschränkung:
$ ulimit -c unlimited
Ergebnis beobachten:
$ ulimit -a
core file size (blocks, -c) unlimited
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 7959
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
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) 1024
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
In der Tat wird das Limit geändert. Wenn ich jedoch ein anderes Terminal öffne und den Wert überprüfe, wird in der Größe der Kerndatei immer noch der Wert Null angezeigt.
Fragen:
- Werden Änderungen, die mit dem
ulimit
Befehl vorgenommen wurden, nur auf den aktuellen Prozess angewendet, dh in diesem Fall auf denbash
? - Ich starte ein Programm aus der Shell als Vor- oder Hintergrundprozess. Gilt die
ulimit
Änderung für einen neuen Prozess? - Wie kann ich sicherstellen, dass alle Benutzerprozesse von dieser Konfiguration betroffen sind?
command-line
bash
ulimit
maximb
quelle
quelle
Antworten:
ulimit
ist eine eingebaute Shell und wirkt sich daher nur auf die aktuelle Shell und die von dieser Shell gestarteten Prozesse aus:Von
man ulimit
:Ja, untergeordnete Prozesse sind betroffen.
Bearbeiten
/etc/security/limits.conf
und starten Sie den Computer neu, um dauerhaft oder für alle Prozesse Grenzwerte festzulegen. Die Beispiele auf der Manpage sind ziemlich gut. Sie müssen nur Folgendes hinzufügen:quelle
ulimit
auch ein externer Befehl nicht nur ein bash eingebauten Befehl zu sein?