无法创建特殊文件 /dev/pts/0

无法创建特殊文件 /dev/pts/0

在控制台中使用午夜指挥官时,我无法“切换”窗口(使用CTRL-o

Not an xterm or Linux console;
the panels cannot be toggled

但是,我的$TERM设置为linux.

经过一番谷歌搜索后,我发现问题可能出在/dev/pts.我已/dev/pts动态安装,devpts但它是空的。当我尝试/dev/pts/0从另一台机器复制时,出现错误:

cannot create special file /dev/pts/0
Operation not permitted

我在某个地方找到了检查的建议sysctl -a | grep pty。这给了我:

# sysctl -a | grep pty
kernel.pty.max = 4096
kernel.pty.nr = 0
kernel.pty.reserve = 1024

在另一台可以/dev/pts/工作的机器上,我得到:

# sysctl -a | grep pty
kernel.pty.max = 4096
kernel.pty.nr = 8
kernel.pty.reserve = 1024

我不知道这到底意味着什么,但看起来问题是这样的:

kernel.pty.nr = 0

有什么建议如何解决这个问题吗?

笔记: 我没有使用udev。我的/dev/是静态的(静态开发文件/dev/pts安装为devpts

更正:我的 /dev/pts 被安装为devpts(而不是如tmpfs我原来的问题中所述)。

更新:

# ls -ld /dev/pt* /dev/pts/*
ls: cannot access /dev/pts/*: No such file or directory
crw-rw-rwT 1 root root   5, 2 Oct  2 00:57 /dev/ptmx
drwxr-xr-x 2 root root      0 Sep 30 17:31 /dev/pts

# grep /dev /proc/mounts
/dev/root / ext2 rw,relatime 0 0
devpts /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620 0 0

答案1

检查您的版本是否mc编译有subshell功能。您可以通过运行以下命令来检查:

$ mc -V
...
With subshell support as default
...

快速 Google 搜索会返回以下 2 个结果:

在我的笔记本电脑上,当我点击 时ctrl+o,我可以在strace输出中看到调用以下命令:

execve("/usr/lib/mc/cons.saver", ["cons.saver", "/dev/pts/8"], [/* 136 vars */]) = 0

我调用的终端mc/dev/pts/8.因此,正如第二个链接提到的,请确保cons.saver可以访问您的终端设备。

相关内容