Erhöhen des Stapellimits in OS X Yosemite

12

Ich suche nach einer Möglichkeit, die für Terminalanwendungen in OS X 10.10 verfügbare Stapelgröße (nicht unbedingt dauerhaft) zu erhöhen.

Ich weiß, dass es im Internet und insbesondere hier (z. B. in diesem Fall ) viele Fragen im Zusammenhang mit sich ändernden Umgebungsvariablen gibt, einschließlich der Stapelbegrenzung, aber keine der vorgeschlagenen Lösungen, die ich gefunden habe, scheint für mich zu funktionieren.

Das Beste, was ich daraus machen kann, launchctlist die Verwendung von sudo launchctl limit stack 67104768 6710476867104768 als Standard-Hardlimit. Andere launchctlBefehle mit höheren Grenzwerten scheinen keine Wirkung zu haben.

Dann gibt es sysctl, aber seine Manpages berichten kern.stack_sizeals unveränderlich.

Ich hoffe, ich habe keine Lösungen übersehen, die bereits irgendwo vorgeschlagen wurden. Jede Hilfe wäre sehr dankbar!

Bearbeiten: Ich möchte das Stapellimit erhöhen, um einen Fehler in ocamlopt, dem nativen OCaml-Compiler, zu umgehen, der die Verarbeitung eines bestimmten (sinnvollen) Programms überläuft. Ich kann den Fehlerbericht momentan nicht finden.

Christopher
quelle
1
Fragen Sie explizit, wie Sie das Stapellimit von Yosemite erhöhen können?
1
Ja. Entschuldigung, wenn das nicht aus dem Text hervorgeht.
Christopher
1
Ich habe eine Frage zu finden superuser.com/questions/836883/... die dir helfen können ... In der ersten Antwort, es zeigt eine maxfiles Grenze. Vielleicht ändern Sie es auf limit.stack.plistStapellimit und speichern als in launchDaemons?
TheBro21
1
Vielen Dank! Ich habe es gerade versucht, aber kein Glück.
Christopher
1
In Ordnung. Und haben Sie tatsächlich die Limit-Datei gefunden? Wenn es nicht da ist. Ich werde Zeit damit verbringen, danach zu suchen und das Problem zu beheben. Und die Konfiguration dieser Liste habe ich zuvor angewiesen.
TheBro21

Antworten:

5

Eine Möglichkeit, die Stapelgröße zu erhöhen, besteht darin, Folgendes zu verwenden ulimit:

shell> ulimit -s new_size_in_kb

Denken Sie daran, dass es anscheinend ein hartes Limit für die Größe des Stacks unter OSX gibt und dieses Limit bei 65532 kb zu liegen scheint:

shell> ulimit -s 65533
ulimit: value exceeds hard limit
shell> ulimit -s 65532
shell> ulimit -a | grep stack
-s: stack size (kbytes)             65532

ulimit -sIst auch vorübergehend und wird zurückgesetzt, sobald die Terminalsitzung endet.

Wenn Sie sicherstellen möchten, dass der Stapel für jede Terminalsitzung erhöht wird, können Sie den ulimit -sBefehl in Ihre .zshrc-Datei oder eine entsprechende Datei einfügen.

fpierfed
quelle
Dank dafür! Leider muss ich in diesem speziellen Fall die Stapelgröße über das harte OSX-Limit hinaus erhöhen, und ich hatte gehofft, eine Lösung zu finden, die dieses Limit erhöht.
Christopher
Ja: auch a ulimit -s unlimitedscheint auf 65532 Kb begrenzt zu sein: ulimit -a | grep stackgibt-s: stack size (kbytes) 65532
fpierfed