मैं एक जावा ऐप का उपयोग करके चलाने की योजना बना रहा हूं nohup ... &। सीमा इस तरह आदेशों पर लागू होनी चाहिए।
मैं एक जावा ऐप का उपयोग करके चलाने की योजना बना रहा हूं nohup ... &। सीमा इस तरह आदेशों पर लागू होनी चाहिए।
जवाबों:
अधिकांश सिस्टम PAM का उपयोग करते हैं , और pam_limitsमॉड्यूल आधारित सीमाएँ हैं /etc/security/limits.conf। खुली फ़ाइलों के लिए प्रति उपयोगकर्ता सीमा कहा जाता है nofile। आप इसे प्रत्येक उपयोगकर्ता के लिए या किसी विशेष उपयोगकर्ता या समूह के लिए सेट कर सकते हैं, और आप एक सीमा निर्धारित कर सकते हैं कि उपयोगकर्ता ओवरराइड (नरम सीमा) और दूसरा जो केवल रूट को ओवरराइड कर सकता है (हार्ड लिमिट)। प्रलेखन और limits.confआदमी पेज विवरण है। उदाहरण के लिए, सभी के लिए 50000 की सीमा बढ़ाने के लिए, इस लाइन को /etc/limits.conf(जब आप लॉग इन करते हैं तो सेटिंग प्रभावी हो जाती है):
* - nofile 50000
limits.confकरो * hard nofile 50000और / या * soft nofile 50000। मैं कठिन और नरम के बीच तकनीकी अंतर नहीं जानता और हमेशा दोनों किया है।
limit descriptors 50000दिए गए टर्मिनल विंडो / सत्र के भीतर मान को बदलने के लिए कर सकता है ।
ulimitकमांड चलाने से एक नरम सीमा को बदला जा सकता है (जिसे limitcsh कहा जाता है)। एक अनपेक्षित उपयोगकर्ता कभी भी हार्ड लिमिट से अधिक नहीं जा सकता है।
आप जोड़ सकते हैं fs.file-max = <your number>में /etc/sysctl.conf। फिर रिबूट करें।
sysctl fs.file-max=123456। ( /etc/sysctl.confबूट समय पर एक स्क्रिप्ट द्वारा पढ़ी जाती है जो sysctlसामग्री पर कॉल करती है।)
आप इसके लिए ulimit का उपयोग कर सकते हैं:
http://bloggerdigest.blogspot.com/2006/10/purpose-of-ulimit-linux-command.html
यद्यपि आपको यह सुनिश्चित करना चाहिए कि इस तरह के समायोजन का सहारा लेने से पहले बहुत सारे फ़ाइल हैंडल खोलना आवश्यक है। अधिकतम फ़ाइल हैंडल को केवल इसलिए बढ़ाना क्योंकि आप एक इनपुटस्ट्रीम .close () करना भूल गए हैं, केवल अंतर्निहित समस्या को दूर करने के लिए जा रहा है।
कार्यक्रम उदाहरण के अनुसार अलिमेट (बैश कमांड - मैन बैश या अपने शेल के समान खोजें) का उपयोग करें। वैश्विक प्रणाली सीमा का उपयोग न करें यदि आप नहीं जानते कि आप क्या कर रहे हैं - संभव DoS।
nofileकिया limits.confहै। मैं पुष्टि कर सकता हूं कि एसएसएच के साथ बाद में लॉग इन को रोकने के लिए बहुत बड़ा मान सेट करना और सिस्टम को पुनर्प्राप्त करने के लिए मुझे उस मान को सीमा में सही करने के लिए डीवीडी से बूट करना होगा।
vi ~/.bashrc
और फ़ाइल के अंत में एक पंक्ति जोड़ें
ulimit -n 169203