Moje pytanie prawdopodobnie nie jest związane w szczególności z Ubuntu, ale ponieważ mój komputer z tym systemem operacyjnym przyszedł na to forum.
Próbuję zmienić rozmiar pliku podstawowego za pomocą ulimit -c
polecenia w następujący sposób:
$ 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
Zmiana ograniczenia:
$ ulimit -c unlimited
Obserwując wynik:
$ 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
Rzeczywiście limit został zmieniony. Jednak gdy otwieram inny terminal i sprawdzam wartość, nadal widzę wartość zerową w głównym rozmiarze pliku.
Pytania:
- Czy zmiany dokonywane za pomocą
ulimit
polecenia wpływają tylko na bieżący proces, tj. W tym przypadkubash
? - Uruchamiam program z powłoki jako proces poprzedzający lub działający w tle. Czy
ulimit
zmiana dotyczy nowego procesu? - Jak sprawić, by ta konfiguracja wpływała na wszystkie procesy użytkownika?
command-line
bash
ulimit
maximb
źródło
źródło
Odpowiedzi:
ulimit
jest wbudowaną powłoką, a zatem wpływa tylko na bieżącą powłokę, a procesy uruchomione przez tę powłokę:Od
man ulimit
:Tak, wpływa to na procesy potomne.
Aby ustawić limity na stałe lub dla wszystkich procesów, edytuj
/etc/security/limits.conf
i uruchom ponownie. Przykłady na stronie są dość dobre. Musisz tylko dodać coś takiego:źródło
ulimit
oprócz poleceń wbudowanych bash jest także polecenie zewnętrzne?