需要更多伪终端


11

我正在运行tmux并创建到各种服务器的许多会话。打开128后,我将无法再打开新窗口,也无法在终端中打开新选项卡。错误消息是:

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

有什么办法可以增加pty的数量?


了解您正在运行的OS X版本以及哪种Mac,特别是已安装了多少RAM会很有帮助。
gosmond

我正在使用10.8.2,并具有8gb的RAM,足以打开数千个ssh会话。
史蒂夫·威尔斯

Answers:


14

(在OS X 10.8.2上测试;其他发行版可能略有不同。)

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

sudo sysctl -w kern.tty.ptmx_max=255

这应该立即让您打开更多的订单。

要在每次重新启动后自动进行设置,请在/etc/sysctl.conf文件中添加以下行:

kern.tty.ptmx_max=255

(注意:我没有尝试过,但是,从源代码看,它看起来像启动了处理该文件。)

该文件可能不存在;如果必须创建它,则可能应该确保它具有受限的所有权和权限:

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

最终,您可能会遇到其他每个进程或每个用户资源限制(例如,每个用户的进程总数,以及每个进程的打开文件描述符总数)。


最终得到测试,效果很好,谢谢。作为记录,我不能将其设置为999以上,但是现在就可以了。
史蒂夫·威尔斯

1
这使我可以打开169个pty,但不能更多。sudo sysctl kern.tty.ptmx_max返回999正确的。我在此上缺少什么?
ubuntudroid

@ubuntudroid:您可能正在限制打开文件的数量(ulimitbash表示)。这些限制是从父进程继承的,因此要为tmux对其进行更改,您将需要在(例如)shell中对其进行更改,然后重新启动tmux服务器。要使更改“持久”,请尝试launchctl.conf使用limit命令
克里斯·约翰森

每当在我的Mac(10.9.4)上的tmux内时,我都会注意到ulimit -a报告了256个文件描述符限制。打电话ulimit -n 2000完全可以。
史蒂文·卢
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.