Precisa de mais pseudo terminais


11

Estou executando o tmux e criando muitas sessões para vários servidores. Depois de abrir o 128, não consigo mais abrir novos ou abrir novas guias no Terminal. As mensagens de erro são:

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

Existe alguma maneira de aumentar o número de ptys?


Seria útil saber qual versão do OS X você está executando e que tipo de Mac e, principalmente, quanta RAM você instalou.
gosmond

Estou usando o 10.8.2 e tenho 8 GB de RAM, o que deve ser mais do que suficiente para abrir milhares de sessões ssh.
Steve Wills

Respostas:


14

(Testado no OS X 10.8.2; outros lançamentos podem ser um pouco diferentes.)

Você pode alterar o limite do sistema em ptys com o comando sysctl .

sudo sysctl -w kern.tty.ptmx_max=255

Isso deve permitir que você abra mais ptys imediatamente.

Para definir isso automaticamente após cada reinicialização, coloque a seguinte linha no /etc/sysctl.confarquivo:

kern.tty.ptmx_max=255

(Nota: eu não tentei isso, mas, de uma olhada no código-fonte, parece que o launchd processa esse arquivo.)

Este arquivo pode não existir; se você precisar criá-lo, provavelmente deve ter certeza de que possui restrições de propriedade e permissões:

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

Eventualmente, você pode encontrar outros limites de recursos por processo ou por usuário (por exemplo, número total de processos por usuário e número total de descritores de arquivos abertos por processo).


Eventualmente conseguiu testar isso, funciona muito bem, obrigado. Para o registro, eu não poderia definir isso acima de 999, mas isso servirá por enquanto.
Steve Wills

1
Isso me permite abrir até 169 ptys, mas não mais. sudo sysctl kern.tty.ptmx_maxretorna o 999que está correto. Falta alguma coisa neste?
Ubuntudroid

@ubuntudroid: Você pode estar com um limite no número de arquivos abertos ( ulimitno bash ). Esses tipos de limites são herdados dos processos-pai; portanto, para alterá-lo para o tmux, será necessário alterá-lo em (por exemplo) um shell e, em seguida, reinicie o servidor tmux . Para tornar a alteração "persistente", tente um launchctl.confque use um limitcomando .
31813 Chris Johnsen

Sempre que dentro do tmux no meu Mac (10.9.4) eu notei que ulimit -arelatava um limite de 256 descritores de arquivos. Ligar ulimit -n 2000totalmente funcionou.
Steven Lu
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.