OS X Yosemite में स्टैक सीमा बढ़ाना


12

मैं ओएस एक्स 10.10 में टर्मिनल अनुप्रयोगों के लिए उपलब्ध स्टैक आकार को बढ़ाने के लिए (जरूरी नहीं कि स्थायी रूप से) के लिए एक रास्ता ढूंढ रहा हूं।

मैं जानता हूं कि इंटरनेट पर और यहां विशेष रूप से स्टैक लिमिट सहित बदलते पर्यावरण चर से संबंधित बहुत सारे प्रश्न हैं (जैसे कि यह एक ) लेकिन मेरे द्वारा प्रस्तावित कोई भी समाधान मेरे लिए काम नहीं करता है।

सबसे मैं से बाहर निकलना launchctlउपयोग कर रहा है sudo launchctl limit stack 67104768 67104768जहां 67104768 डिफ़ॉल्ट हार्ड सीमा हैं। launchctlउच्च सीमा वाले अन्य आदेशों का कोई प्रभाव नहीं लगता है।

फिर वहाँ है sysctl, लेकिन इसके आदमी पृष्ठों के kern.stack_sizeरूप में अपरिवर्तनीय रिपोर्ट करते हैं।

मुझे आशा है कि मैंने पहले से कहीं प्रस्तावित किए गए किसी भी समाधान की अनदेखी नहीं की है; किसी भी तरह की सहायता का स्वागत किया जाएगा!

संपादित करें: मैं ऑकैमलॉप्ट में एक बग होने के लिए काम करने के लिए स्टैक की सीमा को बढ़ाना चाहूंगा, ओकेएमएल देशी कंपाइलर, यह स्टैक-ओवरफ्लो एक विशेष (समझदार) प्रोग्राम को संसाधित करता है; मैं बग रिपोर्ट अभी नहीं ढूँढ सकता।


1
क्या आप स्पष्ट रूप से पूछ रहे हैं कि योसेमाइट की स्टैक सीमा को कैसे बढ़ाया जाए?

1
हाँ। क्षमा करें, यदि वह पाठ से स्पष्ट नहीं था।
क्रिस्टोफर

1
मुझे superuser.com/questions/836883/… पर एक प्रश्न मिला, जो आपकी मदद कर सकता है ... पहले उत्तर में, यह एक अधिकतम सीमा दिखाता है। शायद इसे स्टैक सीमा में बदलें और limit.stack.plistलॉन्चडैमन्स के रूप में सहेजें?
theBro21

1
धन्यवाद! मैंने बस कोशिश की, लेकिन कोई भाग्य नहीं।
क्रिस्टोफर

1
ठीक है। और क्या आपको वास्तव में सीमा फ़ाइल मिली? अगर यह नहीं है। मैं इसके लिए समय बिताऊंगा और समस्या को ठीक करूंगा। और उस वाद को कॉन्फ़िगर करना जो मैंने पहले निर्देश दिया था।
theBro21

जवाबों:


5

स्टैक के आकार को बढ़ाने का एक तरीका है ulimit:

shell> ulimit -s new_size_in_kb

बस इस बात का ध्यान रखें कि OSX पर स्टैक कितना बड़ा हो सकता है इसकी एक कठिन सीमा प्रतीत होती है और यह सीमा 65532 पाउंड प्रतीत होती है:

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

ulimit -sटर्मिनल सत्र समाप्त होने के बाद भी अस्थायी है और रीसेट करता है।

यदि आप यह सुनिश्चित करना चाहते हैं कि हर टर्मिनल सत्र के लिए स्टैक बढ़ाया जाए, तो आप ulimit -sकमांड को अपने .zshrc या समकक्ष में रख सकते हैं ।


उसके लिए धन्यवाद! दुर्भाग्य से इस विशेष मामले में मुझे OSX की हार्ड सीमा से परे स्टैक आकार बढ़ाने की आवश्यकता है और मैं एक समाधान खोजने की उम्मीद कर रहा था जो इस सीमा को बढ़ाता है।
क्रिस्टोफर

हाँ: यह भी ulimit -s unlimited65532 के लिए सीमित प्रतीत होता है Kb: ulimit -a | grep stackदेता है-s: stack size (kbytes) 65532
fpierfed
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.