我正在设置一个 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 工具。几乎我在它上面所做的一切都是命令行的东西——大量的脚本在运行。
这是我所做的:
- sudo apt-get install xterm
- 编辑 ~/.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 &
所以,我使用 xterm,而不是 mate-terminal、gnome-terminal 或 x-terminal-emulator。
不知道为什么其他的不起作用,但我对 xterm 很满意。我似乎没有在一个窗口中执行多个 seesions/选项卡,但您只需输入 xterm & 在其自己的窗口中打开一个新会话即可实现相同的目的。
Shift使用- Ctrl-C和Shift- -V进行剪切和粘贴Ctrl也不起作用,但您可以通过使用鼠标突出显示文本来执行相同的操作,然后移动到目标窗口并按鼠标中键(或同时按左右键)粘贴。这就是我将上面的 xstartup 文件从笔记本电脑上的 vncviewer 窗口粘贴到同一笔记本电脑上的 Firefox 浏览器窗口的方法。同样的方法也适用于服务器上的 xterm 之间。
注意:该-title
参数被忽略。又不知道为什么。