`लॉन्चरल लिमिट` और` अलिमिट` के बीच क्या संबंध है?


11

सिस्टम स्टार्टअप फ़ाइलों / शेल स्टार्टअप स्क्रिप्ट में कोई भी ulimit कॉन्फ़िगरेशन नहीं है।

ulimit -a दिखाता है:

-u: processes                       1064
-n: file descriptors                256

launchctl limit दिखाता है:

maxproc     2048           2048           
maxfiles    2048           2048

मुझे यह याद है कि लॉन्चर की सीमाएं शेल के एलिमिट आउटपुट के साथ मेल खाना चाहिए, मैं गलत हो सकता हूं।

क्या लॉउक्टेल की सीमाओं और ulimit के बीच कोई संबंध है?


क्या आपको कमांड्स मैन पेज से संतोषजनक उत्तर नहीं मिलते हैं?
एंड्रयू यू।

@AndrewU। लॉन्चक्टल मैनुअल पेज में सीमा का उल्लेख नहीं है, उलिमित मैनुअल पेज में लॉन्चक्टल या लॉन्चड का उल्लेख नहीं है।
हावर्ड

जवाबों:


10

शेल में, ulimit "शेल के लिए उपलब्ध संसाधनों पर नियंत्रण और इसके द्वारा शुरू की गई प्रक्रियाओं पर नियंत्रण प्रदान करता है" (देखें man bash)। इसलिए, यह केवल शेल और उसके बच्चों पर लागू होता है। लॉन्चड की सीमाएँ इससे संबंधित हैं और प्रक्रियाएँ जो इसे प्रबंधित करती हैं। दोनों अलग हैं।

व्यक्तिगत कार्यक्रम मानक सी लाइब्रेरी रूटीन ulimit()या getrlimit()और कॉल करके अपनी स्वयं की संसाधन सीमाएँ निर्धारित कर सकते हैं setrlimit()। जब तक प्रक्रिया सुपर-उपयोगकर्ता के रूप में चल रही है तब तक कुछ संसाधन सीमाएँ उन्नत नहीं की जा सकती हैं।

एक व्यावहारिक उदाहरण के रूप में, मैं बड़ी सॉफ्टवेयर परियोजनाओं को डीबग करता हूं और खुली फाइलों की संख्या के लिए शेल की डिफ़ॉल्ट सीमा पर्याप्त बड़ी नहीं है। मेरी .bashrc फ़ाइल में, मेरे पास निम्नलिखित हैं:

# Increase the upper limit on the number of open files:
ulimit -n 1024

अब मेरे डिबगर को यह शिकायत नहीं होगी कि वह अपनी ज़रूरत की सभी फाइलें नहीं खोल सकता। जाहिर है, यह लॉन्च पर कोई प्रभाव नहीं होना चाहिए।


1
उस पर विस्तृत करने के लिए: डिफ़ॉल्ट ulimit सेटिंग्स से ली गई हैं launchctl limit; यद्यपि उपयोगकर्ता ulimit नंबर बदल सकते हैं, हालाँकि वे launchctl limitहार्ड सीमा से अधिक नहीं हो सकते हैं।
हावर्ड

इसे रीबूट पर रीसेट किया जाएगा
इंजीनियरडव
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.