題:
需要更多偽終端
Steve Wills
2013-02-19 22:06:56 UTC
view on stackexchange narkive permalink

我正在運行tmux並創建許多與各種服務器的會話。打開128後,我將無法再打開新窗口,也無法在終端中打開新選項卡。錯誤消息是:

  forkpty:設備未配置無法創建新進程並打開偽tty。 

有什麼方法可以增加pty的數量?

了解您正在運行的OS X版本以及哪種Mac,特別是已安裝了多少RAM會很有幫助。
我使用的是10.8.2,並具有8gb的RAM,這足以打開數千個ssh會話。
一 回答:
Chris Johnsen
2013-02-23 10:42:16 UTC
view on stackexchange narkive permalink

(在OS X 10.8.2上測試;其他發行版可能會稍有不同。)

您可以使用 sysctl 命令更改系統對pty的限制。

  sudo sysctl -w kern.tty.ptmx_max = 255  

這應該立即讓您打開更多的pty。

要在之後自動設置每次重新啟動時,將以下行放在 /etc/sysctl.conf 文件中:

  kern.tty.ptmx_max = 255  

(注意:我沒有嘗試過,但是從源代碼的角度來看, launchd 確實可以處理此文件。)

此文件可能不存在;如果必須創建它,則可能應該確保它具有受限的所有權和權限:

  sudo chown root:wheel /etc/sysctl.confsudo chmod 644 /etc/sysctl.conf最終,您可能會遇到其他每個進程或每個用戶資源限制(例如,每個用戶的進程總數和每個進程的打開文件描述符總數)。
最終得到測試,效果很好,謝謝。出於記錄,我不能將此設置為999以上,但是現在就可以了。
這使我最多可以打開169個pty。 sudo sysctl kern.tty.ptmx_max返回正確的999。我在這個上缺少什麼?
@ubuntudroid:您可能正在限制打開文件的數量(* bash *中的'ulimit`)。這些限制是從父進程繼承的,因此要針對* tmux *進行更改,您需要在(例如)shell中進行更改,然後重新啟動* tmux *服務器。要使更改“持久”,請嘗試[`launchctl.conf`](https://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man5/launchd.conf.5.html #// apple_ref / doc / man / 5 / launchd.conf),它使用[`limit`命令](https://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/ launchctl.1.html)。
每當在Mac(10.9.4)上的tmux中,我注意到`ulimit -a`報告了256個文件描述符限制。調用`ulimit -n 2000`完全可以。


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...