OS X Yosemite'de yığın sınırını artırma


12

Ben OS X 10.10 terminal uygulamaları için kullanılabilir yığın boyutunu (kalıcı olarak değil) artırmak için bir yol arıyorum.

İnternette ve burada özellikle (örneğin, bu ) yığın limiti de dahil olmak üzere ortam değişkenlerini değiştirmekle ilgili birçok soru olduğunu biliyorum ama bulduğum önerilen çözümlerin hiçbiri benim için çalışmıyor gibi görünüyor.

En fazla çıktığımda 67104768 varsayılan sabit sınır nerede launchctlkullanmaktır sudo launchctl limit stack 67104768 67104768. Daha launchctlyüksek limitlere sahip diğer komutların hiçbir etkisi yoktur.

Sonra var sysctl, ama adam sayfaları kern.stack_sizedeğişmez olarak rapor ediyor .

Umarım bir yerde önerilmiş herhangi bir çözümü göz ardı etmemiştim; herhangi bir yardım büyük mutluluk duyacağız!

Düzenleme: Belirli bir (mantıklı) program işleme taşması o ocamlopt, OCaml yerel derleyici, bir hata gibi görünüyor etrafında çalışmak için yığın sınırını artırmak istiyorum; Şu anda hata raporunu bulamıyorum.


1
Açıkça Yosemite'nin yığın limitini nasıl artıracağınızı mı soruyorsunuz?

1
Evet. Üzgünüm, bu metinden net değilse.
Christopher

1
Superuser.com/questions/836883/… ' da size yardımcı olabilecek bir soru buldum ... İlk cevapta bir maxfiles sınırı gösteriyor. Belki yığını sınırlamak ve limit.stack.plistlaunchDaemons olarak kaydetmek için değiştirin ?
TheBro21

1
Teşekkürler! Sadece denedim, ama şans yok.
Christopher

1
Tamam. Ve gerçekten sınır dosyasını buldunuz mu? Eğer orada değilse. Onu aramak ve sorunu çözmek için zaman harcayacağım. Ve daha önce talimat verdiğim plist'i yapılandırmak.
TheBro21

Yanıtlar:


5

Yığın boyutunu artırmanın bir yolu ulimitşunları kullanmaktır :

shell> ulimit -s new_size_in_kb

Yığının OSX'te ne kadar büyük olabileceğine dair zor bir sınır olduğunu ve bu sınırın 65532 kb olduğunu unutmayın:

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

Ayrıca ulimit -sgeçicidir ve terminal oturumu sona erdiğinde sıfırlanır.

Her terminal oturumu için yığının artırıldığından emin olmak istiyorsanız, ulimit -skomutu .zshrc veya eşdeğerinize koyabilirsiniz .


Bunun için teşekkürler! Ne yazık ki bu özel durumda, yığın boyutunu OSX'in zor sınırının ötesine yükseltmem gerekiyor ve bu sınırı artıran bir çözüm bulmayı umuyordum.
Christopher

Evet: ayrıca ulimit -s unlimited65532 Kb ile sınırlı görünüyor: ulimit -a | grep stackverir-s: stack size (kbytes) 65532
fpierfed
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.