尝试启动屏幕时显示“没有更多 PTY”

尝试启动屏幕时显示“没有更多 PTY”

当我尝试启动“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 上,但它曾经运行良好,直到它停止工作。不过其他一切似乎都很好。

答案1

pty 为零的情况是不寻常的,因为您使用的 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

答案2

我遇到了类似的问题,但我的问题出现在我启动系统内的 LXC 容器时(停止它没有帮助)。结果是,当 screen(在我的基础系统中)试图打开一个新的 PTY 时,它打开了一个已经存在的 PTY,并且无法更改其所有权。

这很奇怪,但最明显的地方是 /dev/pts 挂载点,所以我只是重新挂载了它:

# mount -o remount /dev/pts

问题就解决了。重新安装后,我没有从 /dev/pts“丢失”任何 PTY 设备,因此这似乎是一个非常安全的操作。

答案3

我遇到了类似的问题,但问题在于 /dev/pt* 设备的权限错误。

不确定为什么它们被设置为 600,所以只有 root 可以使用屏幕,我将其更改为 666 并且它适用于其他用户。

相关内容