Necesita más pseudo terminales

11

Estoy ejecutando tmux y creando muchas sesiones en varios servidores. Después de abrir 128, ya no puedo abrir otras nuevas, o abrir nuevas pestañas en Terminal. Los mensajes de error son:

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

¿Hay alguna forma de aumentar el número de ptys?

Steve Wills
fuente
Sería útil saber qué versión de OS X está ejecutando y qué tipo de Mac, y en particular, cuánta RAM ha instalado.
gosmond
Estoy usando 10.8.2 y tengo 8 gb de RAM, que debería ser más que suficiente para abrir miles de sesiones ssh.
Steve Wills

Respuestas:

14

(Probado en OS X 10.8.2; otras versiones pueden ser ligeramente diferentes).

Puede cambiar el límite del sistema en ptys con el comando sysctl .

sudo sysctl -w kern.tty.ptmx_max=255

Esto debería permitirle abrir inmediatamente más ptys.

Para configurar esto automáticamente después de cada reinicio, coloque la siguiente línea en el /etc/sysctl.confarchivo:

kern.tty.ptmx_max=255

(Nota: no probé esto, pero, al observar el código fuente, parece que launchd procesa este archivo).

Este archivo puede no existir; si tiene que crearlo, probablemente debería estar seguro de que tiene propiedad y permisos restringidos:

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

Eventualmente, puede encontrarse con otros límites de recursos por proceso o por usuario (por ejemplo, número total de procesos por usuario y número total de descriptores de archivos abiertos por proceso).

Chris Johnsen
fuente
Finalmente pude probar esto, funciona muy bien, gracias. Para el registro, no pude establecer esto por encima de 999, pero eso servirá por ahora.
Steve Wills
1
Esto me permite abrir hasta 169 ptys, pero no más. sudo sysctl kern.tty.ptmx_maxdevuelve lo 999que es correcto. ¿Algo que me falta en este?
ubuntudroid
@ubuntudroid: es posible que se encuentre con un límite en la cantidad de archivos abiertos ( ulimiten bash ). Este tipo de límites se heredan de los procesos principales, por lo que para cambiarlo por tmux , deberá cambiarlo en (por ejemplo) un shell y luego reiniciar su servidor tmux . Para hacer que el cambio sea "persistente", pruebe con launchctl.confun limitcomando .
Chris Johnsen
Siempre dentro de tmux en mi Mac (10.9.4) noté que ulimit -ahabía un límite de 256 descriptores de archivo. Llamar ulimit -n 2000totalmente funcionó sin embargo.
Steven Lu