अधिक छद्म टर्मिनलों की आवश्यकता है


11

मैं tmux चला रहा हूं और विभिन्न सर्वरों के लिए कई सत्र बना रहा हूं। 128 खोलने के बाद, मैं अब नए लोगों को नहीं खोल सकता, या टर्मिनल में नए टैब नहीं खोल सकता। त्रुटि संदेश है:

forkpty: Device not configured
Could not create a new process and open a pseudo-tty.

क्या कोई तरीका है जिससे मैं pty की संख्या बढ़ा सकता हूं?


यह जानना उपयोगी होगा कि आप किस OS OS का संस्करण चला रहे हैं, और किस प्रकार का Mac, और विशेष रूप से, आपने कितनी RAM स्थापित की है।
गोसांद

मैं १०. which.२ का उपयोग कर रहा हूं और of जीबी रैम है, जो हजारों एसएचएस सत्र खोलने के लिए पर्याप्त से अधिक होनी चाहिए।
स्टीव ने

जवाबों:


14

(OS X 10.8.2 पर परीक्षण; अन्य रिलीज़ थोड़े अलग हो सकते हैं।)

आप sysctl कमांड के साथ ptys पर सिस्टम की सीमा को बदल सकते हैं ।

sudo sysctl -w kern.tty.ptmx_max=255

यह आपको तुरंत अधिक ptys खोलने देना चाहिए।

प्रत्येक रिबूट के बाद इसे स्वचालित रूप से सेट करने के लिए, /etc/sysctl.confफाइल में निम्नलिखित लाइन डालें :

kern.tty.ptmx_max=255

(नोट: मैंने यह कोशिश नहीं की, लेकिन, स्रोत कोड पर एक नज़र से, ऐसा लगता है कि लॉन्चड इस फ़ाइल को संसाधित करता है।)

यह फ़ाइल मौजूद नहीं हो सकती है; यदि आपको इसे बनाना है, तो आपको निश्चित रूप से यह सुनिश्चित करना चाहिए कि इसके स्वामित्व और अनुमतियां प्रतिबंधित हैं:

sudo chown root:wheel /etc/sysctl.conf
sudo chmod 644 /etc/sysctl.conf

आखिरकार, आप कुछ अन्य प्रति-प्रक्रिया या प्रति-उपयोगकर्ता संसाधन सीमाओं (उदाहरण के लिए प्रति उपयोगकर्ता प्रक्रियाओं की कुल संख्या, और प्रति प्रक्रिया खुली फ़ाइल विवरणियों की कुल संख्या) में चल सकते हैं।


आखिरकार यह परीक्षण करने के लिए मिला, महान काम करता है, धन्यवाद। रिकॉर्ड के लिए, मैं इसे 999 से ऊपर सेट नहीं कर सकता, लेकिन यह अभी के लिए करेगा।
स्टीव

1
यह मुझे 169 पीटी तक खोलने की अनुमति देता है, लेकिन अधिक नहीं। sudo sysctl kern.tty.ptmx_maxरिटर्न 999जो सही है। कुछ भी मैं इस पर याद कर रहा हूँ?
ubuntudroid

@ubuntudroid: आप खुली फ़ाइलों की संख्या (पर एक सीमा में चल रहा हो सकता है ulimitमें बैश )। इस प्रकार की सीमाएं मूल प्रक्रियाओं से विरासत में मिली हैं, इसलिए इसे tmux के लिए बदलने के लिए आपको इसे एक शेल में (जैसे) बदलना होगा और फिर अपने tmux सर्वर को पुनरारंभ करना होगा । परिवर्तन को "लगातार" बनाने के लिए, launchctl.confएक limitआदेश का उपयोग करने का प्रयास करें ।
क्रिस जॉन्सन

जब भी मेरे मैक (10.9.4) पर tmux के अंदर मैंने देखा ulimit -aकि एक 256 फ़ाइल डिस्क्रिप्टर सीमा की सूचना है। कॉलिंग ulimit -n 2000हालांकि पूरी तरह से काम की है।
स्टीवन लू
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.