ต้องการเทอร์มินัลหลอกเพิ่มเติม


11

ฉันใช้ tmux และสร้างเซสชันจำนวนมากไปยังเซิร์ฟเวอร์ต่างๆ หลังจากเปิด 128 ฉันจะไม่สามารถเปิดแท็บใหม่หรือเปิดแท็บใหม่ในเทอร์มินัลได้อีก ข้อความแสดงข้อผิดพลาดคือ:

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

มีวิธีใดบ้างที่ฉันสามารถเพิ่มจำนวน ptys ได้?


การรู้ว่าคุณใช้ OS X รุ่นใดและ Mac ประเภทใดโดยเฉพาะอย่างยิ่งคุณติดตั้ง RAM เท่าใด
gosmond

ฉันใช้ 10.8.2 และมี RAM 8gb ซึ่งน่าจะเกินพอที่จะเปิดเซสชัน ssh หลายพันรายการ
Steve Wills

คำตอบ:


14

(ทดสอบบน OS X 10.8.2; รุ่นอื่น ๆ อาจแตกต่างกันเล็กน้อย)

คุณสามารถเปลี่ยนขีด จำกัด ของระบบใน ptys ด้วยคำสั่งsysctl

sudo sysctl -w kern.tty.ptmx_max=255

สิ่งนี้จะช่วยให้คุณเปิด pty ได้ทันที

หากต้องการตั้งค่านี้โดยอัตโนมัติหลังจากรีบูตแต่ละครั้งให้วางบรรทัดต่อไปนี้ใน/etc/sysctl.confไฟล์:

kern.tty.ptmx_max=255

(หมายเหตุ: ฉันไม่ได้ลองสิ่งนี้ แต่จากการดูซอร์สโค้ดดูเหมือนว่าlaunchdจะประมวลผลไฟล์นี้)

ไฟล์นี้อาจไม่มีอยู่; หากคุณต้องสร้างมันขึ้นมาคุณควรจะแน่ใจว่ามันมีการ จำกัด สิทธิ์และสิทธิ์:

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

ในที่สุดคุณอาจพบข้อ จำกัด ทรัพยากรต่อกระบวนการหรือต่อผู้ใช้บางคน (เช่นจำนวนกระบวนการทั้งหมดต่อผู้ใช้และจำนวนไฟล์ตัวอธิบายไฟล์เปิดต่อกระบวนการ)


ในที่สุดก็ต้องทดสอบสิ่งนี้ใช้งานได้ดีขอบคุณ สำหรับบันทึกฉันไม่สามารถตั้งค่านี้เหนือ 999 แต่จะทำในตอนนี้
Steve Wills

1
สิ่งนี้ทำให้ฉันเปิดได้ถึง 169 ptys แต่ไม่มาก sudo sysctl kern.tty.ptmx_maxผลตอบแทน999ที่ถูกต้อง มีอะไรที่ฉันขาดหายไป
ubuntudroid

@ubuntudroid: คุณอาจจะมีการทำงานเป็นขีด จำกัด จำนวนไฟล์ที่เปิด ( ulimitในทุบตี ) ข้อ จำกัด ชนิดเหล่านี้สืบทอดจากกระบวนการพาเรนต์ดังนั้นหากต้องการเปลี่ยนสำหรับtmuxคุณจะต้องเปลี่ยนเป็น (เช่น) เชลล์แล้วรีสตาร์ทเซิร์ฟเวอร์tmuxของคุณ เพื่อให้การเปลี่ยนแปลง“ถาวร” ลองlaunchctl.confที่ใช้คำสั่งlimit
Chris Johnsen

เมื่อใดก็ตามที่อยู่ภายใน tmux บน Mac ของฉัน (10.9.4) ฉันสังเกตเห็นการulimit -aรายงานข้อ จำกัด ของไฟล์อธิบาย 256 ulimit -n 2000แม้ว่าการโทรทำงานโดยสมบูรณ์
สตีเวนลู
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.