Potrzebujesz więcej pseudo terminali

11

Używam tmux i tworzę wiele sesji na różnych serwerach. Po otwarciu 128 nie mogę już otwierać nowych ani otwierać nowych kart w Terminalu. Komunikaty o błędach to:

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

Czy jest jakiś sposób na zwiększenie liczby pty?

Steve Wills
źródło
Przydałoby się wiedzieć, z której wersji systemu OS X korzystasz i jaki komputer Mac, a zwłaszcza ile pamięci RAM zainstalowałeś.
gosmond
Używam 10.8.2 i mam 8 GB pamięci RAM, co powinno wystarczyć do otwarcia tysięcy sesji ssh.
Steve Wills

Odpowiedzi:

14

(Testowane w systemie OS X 10.8.2; inne wersje mogą się nieco różnić).

Możesz zmienić limit systemu na ptys za pomocą polecenia sysctl .

sudo sysctl -w kern.tty.ptmx_max=255

Powinno to od razu pozwolić Ci otworzyć więcej ptys.

Aby ustawić to automatycznie po każdym ponownym uruchomieniu, wstaw następujący wiersz do /etc/sysctl.confpliku:

kern.tty.ptmx_max=255

(Uwaga: nie próbowałem tego, ale patrząc na kod źródłowy wygląda na to, że uruchomione przetwarza ten plik).

Ten plik może nie istnieć; jeśli musisz go utworzyć, prawdopodobnie powinieneś mieć pewność, że ma ograniczone prawa własności i uprawnienia:

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

W końcu możesz napotkać inne limity zasobów na proces lub na użytkownika (np. Całkowitą liczbę procesów na użytkownika i całkowitą liczbę otwartych deskryptorów plików na proces).

Chris Johnsen
źródło
W końcu muszę to przetestować, działa świetnie, dzięki. Dla przypomnienia, nie mogłem ustawić tego powyżej 999, ale na razie to wystarczy.
Steve Wills
1
To pozwala mi otworzyć do 169 sztuk, ale nie więcej. sudo sysctl kern.tty.ptmx_maxzwraca, 999co jest poprawne. Czegoś mi brakuje w tym?
ubuntudroid
@ubuntudroid: Być może masz limit liczby otwartych plików ( ulimitw bash ). Tego rodzaju limity są dziedziczone z procesów nadrzędnych, więc aby je zmienić dla tmux , musisz zmienić je w (np.) Powłoce, a następnie zrestartować serwer tmux . Aby zmiana była „trwała”, spróbuj launchctl.confużyć limitpolecenia .
Chris Johnsen,
Ilekroć w tmuxie na moim Macu (10.9.4) zauważyłem ulimit -alimit deskryptora 256 plików. Calling ulimit -n 2000totalnie działało.
Steven Lu