Hai bisogno di più pseudo terminali


11

Sto eseguendo tmux e sto creando molte sessioni su vari server. Dopo aver aperto 128, non posso più aprirne di nuovi o aprire nuove schede in Terminale. I messaggi di errore sono:

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

C'è un modo per aumentare il numero di pty?


Sarebbe utile sapere quale versione di OS X stai utilizzando e che tipo di Mac, e in particolare, quanta RAM hai installato.
Gosmond,

Sto usando 10.8.2 e ho 8 GB di RAM, che dovrebbe essere più che sufficiente per aprire migliaia di sessioni ssh.
Steve Wills,

Risposte:


14

(Testato su OS X 10.8.2; altre versioni potrebbero essere leggermente diverse.)

È possibile modificare il limite del sistema su ptys con il comando sysctl .

sudo sysctl -w kern.tty.ptmx_max=255

Ciò dovrebbe consentirti di aprire immediatamente più pty.

Per impostarlo automaticamente dopo ogni riavvio, inserire la seguente riga nel /etc/sysctl.conffile:

kern.tty.ptmx_max=255

(Nota: non ho provato questo, ma, da uno sguardo al codice sorgente, sembra che launchd elabori questo file.)

Questo file potrebbe non esistere; se devi crearlo, probabilmente dovresti essere sicuro che abbia proprietà e autorizzazioni limitate:

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

Alla fine, potresti incontrare altri limiti di risorse per processo o per utente (ad es. Numero totale di processi per utente e numero totale di descrittori di file aperti per processo).


Alla fine ho potuto provare questo, funziona alla grande, grazie. Per la cronaca, non ho potuto impostare questo sopra 999, ma per ora lo farà.
Steve Wills

1
Questo mi permette di aprire fino a 169 pty, ma non di più. sudo sysctl kern.tty.ptmx_maxritorna 999che è corretto. Qualcosa che mi manca in questo?
ubuntudroid,

@ubuntudroid: potresti avere un limite al numero di file aperti ( ulimitin bash ). Questi tipi di limiti sono ereditati dai processi parent, quindi per cambiarlo per tmux è necessario modificarlo (ad esempio) in una shell e quindi riavviare il server tmux . Per rendere la modifica "persistente", prova a launchctl.confche utilizza un limitcomando .
Chris Johnsen,

Ogni volta all'interno di tmux sul mio Mac (10.9.4) ho notato ulimit -aun limite di descrittore di 256 file. La chiamata ha ulimit -n 2000funzionato totalmente però.
Steven Lu,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.