"Нет больше PTYs" при попытке запустить экран
Когда я пытаюсь запустить "screen" или "byobu", я получаю следующее сообщение об ошибке:
$ screen
No more PTYs.
Sorry, could not find a PTY.
[screen is terminating]
Я, кажется, достаточно, хотя:
$ ls /dev/pts
$ cat /proc/sys/kernel/pty/nr
0
$ cat /proc/sys/kernel/pty/max
4096
Еще немного информации:
$ uname -a
Linux cube.mydedi.net 2.6.18-194.8.1.el5.028stab070.5 #1 SMP Fri Sep 17 19:10:36 MSD 2010 x86_64 x86_64 x86_64 GNU/Linux
Если вам нужна дополнительная информация, пожалуйста, прокомментируйте. Это низкоуровневый VPS, но он работал нормально, пока не перестал работать. Все остальное, кажется, хорошо.
3 ответа
Ноль ptys - это необычно, поскольку для того самого SSH-соединения, которое вы используете, выделен pty.
Убедитесь, что у вас есть devpts
устанавливается:
$ grep /dev/pts /proc/mounts
devpts /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620 0 0
Если это не так:
# mount devpts /dev/pts -t devpts -o mode=620
У меня была похожая проблема, но моя проблема возникла, когда я запустил контейнер LXC в моей системе (и его остановка не помогла). Оказалось, что когда screen (в моей базовой системе) пытался открыть новый PTY, он открывал уже существующий и не мог сменить владельца.
Это было очень странно, но самым очевидным местом была точка монтирования /dev/pts, поэтому я просто перемонтировал ее:
# mount -o remount /dev/pts
и проблемы ушли. После перемонтирования я не "потерял" никакие устройства PTY из /dev/pts, так что это кажется довольно безопасной операцией.
У меня была похожая проблема, но проблема была в неправильных разрешениях устройств /dev/pt*.
Не уверен, почему они были установлены на 600, так что только рут мог использовать экран, я изменил на 666, и это работало для других пользователей.