为什么 gnome-session 会导致我的 TightVNC 会话崩溃以及如何修复它?

为什么 gnome-session 会导致我的 TightVNC 会话崩溃以及如何修复它?

我正在运行 ubuntu 9.10 x64,带有原装的 tightvncserver (1.3.9)。

当我启动tightvncserver时,我可以连接到windows的tightvnc客户端,并获得一个带有单个终端的空桌面。当我尝试启动gnome-session时,它立即崩溃了。

tightvncserver 日志的最后几行是:

01/09/10 10:53:18 Got connection from client 192.168.1.31
01/09/10 10:53:18 Using protocol version 3.8
01/09/10 10:53:18 Enabling TightVNC protocol extensions
01/09/10 10:53:20 Full-control authentication passed by 192.168.1.31
01/09/10 10:53:20 Pixel format for client 192.168.1.31:
01/09/10 10:53:20   32 bpp, depth 24, little endian
01/09/10 10:53:20   true colour: max r 255 g 255 b 255, shift r 16 g 8 b 0
01/09/10 10:53:20   no translation needed
01/09/10 10:53:20 Using tight encoding for client 192.168.1.31
01/09/10 10:53:20 rfbProcessClientNormalMessage: ignoring unknown encoding 8
01/09/10 10:53:20 Enabling X-style cursor updates for client 192.168.1.31
01/09/10 10:53:20 Enabling cursor position updates for client 192.168.1.31
01/09/10 10:53:20 Using image quality level 6 for client 192.168.1.31
01/09/10 10:53:20 Enabling LastRect protocol extension for client 192.168.1.31
01/09/10 10:53:20 rfbProcessClientNormalMessage: ignoring unknown encoding -223
xterm:  fatal IO error 11 (Resource temporarily unavailable) or KillClient on X server ":3.0"

gnome-session 的输出(从 gnome-session | tee 输出获得)是:

GNOME_KEYRING_SOCKET=/tmp/keyring-mUVFSj/socket
SSH_AUTH_SOCK=/tmp/keyring-mUVFSj/socket.ssh
GNOME_KEYRING_PID=2783
** (<unknown>:2779): DEBUG: Client registered with session manager: /org/gnome/SessionManager/Client2
Checking for Xgl: not present.
xset q doesn't reveal the location of the log file. Using fallback /var/log/Xorg.0.log
Detected PCI ID for VGA:
Checking for texture_from_pixmap: not present.
Trying again with indirect rendering:
Checking for texture_from_pixmap: not present.
aborting and using fallback: /usr/bin/metacity

我已经检查了 /var/log/Xorg.0.log,但其中没有与 vnc 会话相关的内容。

我目前在其他 9.10 系统上成功使用 tightvncserver。出现问题的系统与我其他正常工作的系统没有任何显著差异。

我想知道的是:

  1. 我应该做什么来了解有关失败的更多信息
  2. 导致崩溃的原因
  3. 我该如何修复它?

答案1

要回答如何具体诊断您的问题,第一步是启用apport 崩溃报告在系统上,然后尝试重现崩溃。一旦您再次导致 TightVNC 崩溃,如果这是 apport 应该捕获的崩溃类型,崩溃报告应该出现在 /var/crash 中。您应该能够将 ubuntu-bug 指向崩溃报告文件,让其向 launchpad 提交错误报告。

话虽如此,前段时间我尝试了几个 vnc 服务器,希望按照您描述的方式使用其中一个,作为单独的会话,而不是复制正在运行的桌面。我记得,tightvncserver 经常崩溃,并且根据该软件包的启动板错误,似乎其他一些人也看到了同样的事情。

我最终使用了vnc4服务器 安装 vnc4server,这在多个版本中对我来说效果很好。话虽如此,在 maverick 中,我被错误 655886当使用 gnome 会话时,所以它并不完美。

答案2

在启用桌面效果(例如 compiz)的情况下使用 tightvnc 时,我遇到了很多问题。尝试禁用 compiz,看看是否能解决您的问题。您可以通过系统 --> 首选项 --> 外观禁用它,然后选择“视觉效果”选项卡(选择“无”)。

如果这没有帮助到你,你可能需要使用 strace 工具来运行 gnome-session。这将显示 gnome-session 正在运行的每个系统调用,并希望指出哪个调用导致了问题。

相关内容