在控制台中使用午夜指挥官时,我无法“切换”窗口(使用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
可以访问您的终端设备。