vnc:无法使用默认打开的终端应用程序获得 shell 提示符

vnc:无法使用默认打开的终端应用程序获得 shell 提示符

我正在设置一个 VNC 服务器(mint 上的 vnc4server),并且~/.vnc.我使用twm窗口管理器有一个默认的 xstartup 文件。当我连接到 VNC 服务器时,我可以成功进行身份验证并看到终端,但没有收到提示。我可以使用鼠标在终端中打开一个新选项卡,但终端应用程序不会对按下的任何键进行操作。当我按几个随机键并捕获数据包时,这些键将作为“客户端键事件”在 VNC 服务器盒上接收。看起来,VNC 客户端可以传递键盘和鼠标事件,并且可以接收帧缓冲区更新,但由于某种原因,在服务器上运行的应用程序似乎不处理键盘事件。

x启动文件:

~/.vnc$ ls
passwd  rag-tos-laptop:1.log  rag-tos-laptop:1.pid  xstartup*  xstartup.bak*

~/.vnc$ cat xstartup
#!/bin/sh

# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#x-window-manager &
twm &

显示终端菜单的屏幕截图

经过进一步调查,我发现如果我启动 gedit 就可以工作(输入句子),所以这似乎只是与任何终端(+shell)一起工作的问题。当我在 xstartup 中启动 gnome-terminal 时,我仍然无法在 VNC 查看器上获得 shell。更多诊断信息:

~/.vnc$ ps --ppid 3334 -o pid,ppid,stat,cmd
  PID  PPID STAT CMD
 3342  3334 S    gnome-pty-helper
 3343  3334 Ss+  bash

~/.vnc$ ls -l /proc/3334/fd
total 0
lr-x------ 1 rag rag 64 Jan  5 23:25 0 -> /dev/null
l-wx------ 1 rag rag 64 Jan  5 23:25 1 -> /home/rag/.vnc/rag-tos-laptop:1.log
lrwx------ 1 rag rag 64 Jan  5 23:25 10 -> socket:[17343]
lrwx------ 1 rag rag 64 Jan  5 23:25 11 -> anon_inode:[eventfd]
lrwx------ 1 rag rag 64 Jan  5 23:25 12 -> /dev/ptmx
lrwx------ 1 rag rag 64 Jan  5 23:25 13 -> /dev/pts/4
lrwx------ 1 rag rag 64 Jan  5 23:25 14 -> socket:[19273]
lrwx------ 1 rag rag 64 Jan  5 23:25 15 -> anon_inode:[eventfd]
l-wx------ 1 rag rag 64 Jan  5 23:24 2 -> /home/rag/.vnc/rag-tos-laptop:1.log
lrwx------ 1 rag rag 64 Jan  5 23:25 3 -> socket:[19263]
lrwx------ 1 rag rag 64 Jan  5 23:25 4 -> socket:[19267]
lrwx------ 1 rag rag 64 Jan  5 23:25 5 -> anon_inode:[eventfd]
lrwx------ 1 rag rag 64 Jan  5 23:25 6 -> anon_inode:[eventfd]
lrwx------ 1 rag rag 64 Jan  5 23:25 7 -> socket:[20165]
lrwx------ 1 rag rag 64 Jan  5 23:25 8 -> socket:[17342]
lrwx------ 1 rag rag 64 Jan  5 23:25 9 -> anon_inode:[eventfd]

~/.vnc$ ls -l /proc/3343/fd
total 0
lrwx------ 1 rag rag 64 Jan  5 23:23 0 -> /dev/pts/4
lrwx------ 1 rag rag 64 Jan  5 23:23 1 -> /dev/pts/4
lrwx------ 1 rag rag 64 Jan  5 23:23 2 -> /dev/pts/4
lrwx------ 1 rag rag 64 Jan  5 23:25 255 -> /dev/pts/4

答案1

我有完全相同的问题。我更喜欢使用 TWM,因为它又瘦又轻。 Linux Mint 盒子是我的家庭服务器,而且很少需要 GUI 工具。几乎我在它上面所做的一切都是命令行的东西——大量的脚本在运行。

这是我所做的:

  1. sudo apt-get install xterm
  2. 编辑 ~/.vnc/xstartup 以使用 xterm。

#!/bin/sh

exec /etc/X11/xinit/xinitrc [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources

xsetroot -solid grey   

vncconfig -iconic &  #!/bin/sh



/usr/bin/xterm -geometry 80x24+10+10 -ls -title "xterm" &   

/usr/bin/xterm -geometry 80x24+200+200 -ls -T "xterm" &   

twm &

在 Linux Mint 17.1 上运行 TWM 窗口管理器的 VNC 服务器 所以,我使用 xterm,而不是 mate-terminal、gnome-terminal 或 x-terminal-emulator。

不知道为什么其他的不起作用,但我对 xterm 很满意。我似乎没有在一个窗口中执行多个 seesions/选项卡,但您只需输入 xterm & 在其自己的窗口中打开一个新会话即可实现相同的目的。

Shift使用- Ctrl-CShift- -V进行剪切和粘贴Ctrl也不起作用,但您可以通过使用鼠标突出显示文本来执行相同的操作,然后移动到目标窗口并按鼠标中键(或同时按左右键)粘贴。这就是我将上面的 xstartup 文件从笔记本电脑上的 vncviewer 窗口粘贴到同一笔记本电脑上的 Firefox 浏览器窗口的方法。同样的方法也适用于服务器上的 xterm 之间。

注意:该-title参数被忽略。又不知道为什么。

相关内容