Es gibt keine ulimit-Konfiguration in Systemstartdateien/Shell-Startskripten.
ulimit -a
zeigt an:
-u: processes 1064
-n: file descriptors 256
launchctl limit
zeigt an:
maxproc 2048 2048
maxfiles 2048 2048
Ich erinnere mich vage, dass die Limits von launchctl mit der ulimit-Ausgabe einer Shell übereinstimmen sollten, ich könnte mich irren.
Gibt es eine Beziehung zwischen den Grenzen von lauchctl und ulimit?
In der Shell bietet ulimit „Kontrolle über die Ressourcen, die der Shell und den von ihr gestarteten Prozessen zur Verfügung stehen“ (siehe man bash
). Daher gilt es nur für die Shell und ihre Kinder. Die Limits für launchd beziehen sich auf ihn und die Prozesse, die er verwaltet. Die beiden sind getrennt.
Einzelne Programme können ihre eigenen Ressourcengrenzen festlegen, indem sie die Routinen der Standard-C-Bibliothek ulimit()
oder getrlimit()
und aufrufen setrlimit()
. Bestimmte Ressourcengrenzen können nicht erhöht werden, es sei denn, der Prozess wird als Superuser ausgeführt.
Als praktisches Beispiel debugge ich große Softwareprojekte und das Standardlimit der Shell für die Anzahl der geöffneten Dateien ist nicht groß genug. In meiner .bashrc-Datei habe ich Folgendes:
# Increase the upper limit on the number of open files:
ulimit -n 1024
Jetzt beschwert sich mein Debugger nicht mehr, dass er nicht alle benötigten Dateien öffnen kann. Offensichtlich sollte dies keine Auswirkungen auf launchd haben.
launchctl limit
; obwohl der Benutzer ulimit-Nummern ändern kann, dürfen sie jedoch keine launchctl limit
festen Grenzen überschreiten.
Andreas U.
Howard
kenorb