Der Befehl ulimit ändert nur die Ressourcenlimits für die aktuelle Shell und ihre Kinder. sudo ulimit erstellt eine Root-Shell, passt deren Limits an und beendet sich dann (und hat damit, soweit ich sehen kann, keinen wirklichen Effekt).
Um 12288 zu überschreiten, müssen Sie die kern.maxfiles- und kern.maxfilesperproc-Parameter des Kernels anpassen, und auch (zumindest laut diesem Blogeintrag , der eine Zusammenfassung von dieser Diskussion ist) ein launchd-Limit. Sie können launchctl limit verwenden, um alle diese Parameter auf einmal einzustellen:
sudo launchctl limit maxfiles 1000000 1000000
Um dies dauerhaft zu machen (d.h. nicht zurückgesetzt, wenn Sie neu starten), erstellen Sie /etc/launchd.conf mit:
limit maxfiles 1000000 1000000
Dann können Sie ulimit (aber ohne das sudo) verwenden, um Ihr Prozesslimit einzustellen.
Wenn dies nicht ausreicht, stoßen Sie möglicherweise auf Größenbeschränkungen im Kernel. Wenn Ihr Modell es unterstützt , kann das Booten des Kernels im 64-Bit-Modus helfen.