Perlu lebih banyak terminal semu


11

Saya menjalankan tmux dan membuat banyak sesi ke berbagai server. Setelah membuka 128, saya tidak bisa lagi membuka yang baru, atau membuka tab baru di Terminal. Pesan kesalahan adalah:

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

Apakah ada cara saya dapat meningkatkan jumlah ptys?


Akan sangat membantu untuk mengetahui versi OS X apa yang Anda jalankan, dan jenis Mac apa, dan khususnya, berapa banyak RAM yang telah Anda instal.
gosmond

Saya menggunakan 10.8.2 dan memiliki 8gb RAM, yang seharusnya lebih dari cukup untuk membuka ribuan sesi ssh.
Steve Wills

Jawaban:


14

(Diuji pada OS X 10.8.2; rilis lain mungkin sedikit berbeda.)

Anda dapat mengubah batas sistem pada ptys dengan perintah sysctl .

sudo sysctl -w kern.tty.ptmx_max=255

Ini harus segera membiarkan Anda membuka lebih banyak ptys.

Untuk mengatur ini secara otomatis setelah setiap reboot, masukkan baris berikut dalam /etc/sysctl.conffile:

kern.tty.ptmx_max=255

(Catatan: Saya tidak mencoba ini, tetapi, dari melihat kode sumber, sepertinya launchd tidak memproses file ini.)

File ini mungkin tidak ada; jika Anda harus membuatnya, Anda mungkin harus yakin itu telah membatasi kepemilikan dan izin:

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

Akhirnya, Anda dapat mengalami beberapa batas sumber daya per-proses atau per-pengguna lainnya (mis. Jumlah total proses per pengguna, dan jumlah total deskriptor file terbuka per proses).


Akhirnya harus menguji ini, bekerja dengan baik, terima kasih. Sebagai catatan, saya tidak bisa mengatur ini di atas 999, tetapi itu akan berlaku untuk saat ini.
Steve Wills

1
Ini memungkinkan saya untuk membuka hingga 169 ptys, tetapi tidak lebih. sudo sysctl kern.tty.ptmx_maxmengembalikan 999yang benar. Adakah yang saya lewatkan untuk yang ini?
ubuntudroid

@ubuntudroid: Anda mungkin mengalami batas jumlah file terbuka ( ulimitdalam bash ). Batasan semacam ini diwarisi dari proses induk, jadi untuk mengubahnya untuk tmux Anda harus mengubahnya di (misalnya) shell dan kemudian restart server tmux Anda . Untuk membuat perubahan "gigih", coba launchctl.confyang menggunakan limitperintah .
Chris Johnsen

Setiap kali di dalam tmux pada Mac saya (10.9.4) saya perhatikan ulimit -amelaporkan batas deskriptor 256 file. Memanggil ulimit -n 2000benar-benar berhasil.
Steven Lu
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.