W plikach startowych systemu / skryptach startowych powłoki nie ma konfiguracji ulimit.
ulimit -a
przedstawia:
-u: processes 1064
-n: file descriptors 256
launchctl limit
przedstawia:
maxproc 2048 2048
maxfiles 2048 2048
Niejasno pamiętam, że limity launchctl powinny pasować do wyjścia ulimit powłoki, mogę się mylić.
Czy istnieje związek między limitami lauchctl a ulimit?
Odpowiedzi:
W powłoce ulimit zapewnia „kontrolę nad zasobami dostępnymi dla powłoki i uruchomionymi przez nią procesami” (patrz
man bash
). Dlatego dotyczy tylko skorupy i jej dzieci. Limity uruchamiania są z nim związane i procesami, którymi zarządza. Oba są oddzielne.Poszczególne programy mogą ustawić swoje własne limity zasobów poprzez wywołanie procedury Standardowa biblioteka C
ulimit()
lubgetrlimit()
isetrlimit()
. Nie można podnieść niektórych limitów zasobów, chyba że proces działa jako superużytkownik.Jako praktyczny przykład debuguję duże projekty oprogramowania, a domyślny limit powłoki dla liczby otwartych plików nie jest wystarczająco duży. W moim pliku .bashrc mam następujące elementy:
Teraz mój debugger nie narzeka, że nie może otworzyć wszystkich potrzebnych plików. Oczywiście nie powinno to mieć wpływu na uruchomienie.
źródło
launchctl limit
; chociaż użytkownik może zmieniać numery ulimit, nie mogą one jednak przekraczaćlaunchctl limit
twardych limitów.