我正在尝试在 Ubuntu 10.04 LTS 64 位上获取 Real VNC 服务器。
我尝试了 2 个选项。首先,我获得了 Real VNC 免费版,在获得所有需要的 32 位库、配置黑客等后,它开始工作。它几乎没问题,但有一个小问题,在我断开客户端后,服务器打印Aborted
并退出。我尝试了许多参数组合,但无法解决。
这大致是我使用的命令行(但我尝试了许多参数组合)。
Xvnc :2 -desktop user-desktop -query localhost -geometry 1920x1200 -depth 16 -AcceptCutText -SendCutText -rfbauth /home/user/.vnc/passwd -SecurityTypes None -DisconnectClients
第二种选择。我获得了 Real VNC Enterprise 4.6.1 的试用版并安装了它。现在我可以愉快地将其作为独立服务器启动,并且我的客户端可以断开连接而无需关闭服务器,但是当我尝试使用选项时,-inetd
它只是默默退出。当我尝试免费版时,它会进入 stdio 模式并打印握手消息
RFB 003.008
企业版则不然。它只是退出。没有消息,也没有日志。
那么有人知道如何让这两个选项发挥作用吗?
根据 @grawity 的建议,我运行strace
并ltrace
。这是 ltrace 中最有趣的输出(我在名为 abc 的文件中收集了数据,只粘贴了我觉得有趣的行):
$cat abc | egrep 'strchr|print'
fprintf(0x7f330223e860, "\n%s", "Sun Jul 10 13:07:30 2011\n") = 26
strchr("inetd client gone, exiting", ' ') = " client gone, exiting"
strchr("client gone, exiting", ' ') = " gone, exiting"
strchr("gone, exiting", ' ') = " exiting"
$ cat abc | egrep 'strchr|print' | grep socket
strchr("getpeername: Socket operation on"..., ' ') = " Socket operation on non-socket "...
strchr("Socket operation on non-socket ("..., ' ') = " operation on non-socket (88)"
strchr("operation on non-socket (88)", ' ') = " on non-socket (88)"
strchr("on non-socket (88)", ' ') = " non-socket (88)"
strchr("non-socket (88)", ' ') = " (88)"
答案1
尝试在ltrace
或下运行它strace
。
可能是inetd模式要求标准输入和标准输出是套接字 – 例如,这是确定客户端 IP 地址所必需的。RealVNC 可能还没有准备好getpeername()
返回失败。
或者,使用 Xvnc。