Потрібно більше псевдотерміналів


11

Я запускаю tmux і створюю безліч сеансів на різних серверах. Після відкриття 128 я більше не можу відкривати нові або відкривати нові вкладки в Терміналі. Повідомлення про помилки:

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

Чи є якийсь спосіб я збільшити кількість птиць?


Було б корисно дізнатися, яку версію ОС X ви використовуєте, і який тип Mac, і зокрема, скільки оперативної пам’яті ви встановили.
gosmond

Я використовую 10.8.2 і маю 8 ГБ оперативної пам’яті, що має бути більш ніж достатньо для відкриття тисяч сеансів ssh.
Стів Віллз

Відповіді:


14

(Тестовано на OS X 10.8.2; інші випуски можуть дещо відрізнятися.)

Ви можете змінити обмеження системи на ptys за допомогою команди sysctl .

sudo sysctl -w kern.tty.ptmx_max=255

Це повинно негайно відкрити більше ptys.

Щоб встановити це автоматично після кожного перезавантаження, введіть у /etc/sysctl.confфайл такий рядок :

kern.tty.ptmx_max=255

(Примітка. Я цього не пробував, але, з погляду на вихідний код, схоже, що запуск обробляє цей файл.)

Цей файл може не існувати; якщо вам доведеться його створити, ви, ймовірно, повинні бути впевнені, що він обмежив право власності та дозволи:

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

Зрештою, ви можете зіткнутися з деякими іншими обмеженнями ресурсів для кожного процесу чи користувача (наприклад, загальна кількість процесів на користувача та загальна кількість дескрипторів відкритого файлу на процес).


Врешті-решт потрапив на перевірку цього, працює чудово, дякую. Для запису я не міг встановити це вище 999, але це буде робити зараз.
Стів Віллз

1
Це дозволяє мені відкрити до 169 ptys, але не більше. sudo sysctl kern.tty.ptmx_maxповертає, 999що правильно. Щось мені не вистачає на цьому?
ubuntudroid

@ubuntudroid: Можливо, ви обмежили кількість відкритих файлів ( ulimitв баші ). Ці види обмежень успадковуються від батьківських процесів, тому щоб змінити його на tmux, вам потрібно буде змінити його в (наприклад) оболонці, а потім перезапустити ваш tmux- сервер. Щоб зміни були "стійкими", спробуйте команду,launchctl.conf яка використовує limitкоманду .
Кріс Джонсен

Щоразу, коли всередині tmux на моєму Mac (10.9.4) я помічав ulimit -aповідомлення про обмеження дескриптора 256 файлів. ulimit -n 2000Хоча дзвінки повністю працювали.
Стівен Лу
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.