You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 20.04下以root身份启动VSCode失败求助

问题:Ubuntu 20.04下以root身份启动Snap版VSCode 1.79.2出现空白窗口

我在Ubuntu 20.04系统中通过snap安装了VSCode 1.79.2版本,尝试使用命令sudo code --verbose --user-data-dir=/root/.config/Code --no-sandbox以root身份启动VSCode时,仅弹出空白窗口。以下是相关日志信息,恳请各位提供帮助:

[9777:0620/002407.015879:ERROR:bus.cc(399)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
[9777:0620/002407.016217:ERROR:bus.cc(399)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix")
No protocol specified
No protocol specified
[9777:0620/002407.044186:WARNING:bluez_dbus_manager.cc(247)] Floss manager not present, cannot set Floss enable/disable.
No protocol specified
No protocol specified
[9802:0620/002407.050645:ERROR:angle_platform_impl.cc(43)] DisplayVkXcb.cpp:59 (initialize): xcb_connect() failed, error 1
ERR: DisplayVkXcb.cpp:59 (initialize): xcb_connect() failed, error 1
[9802:0620/002407.051043:ERROR:angle_platform_impl.cc(43)] Display.cpp:1004 (initialize): ANGLE Display::initialize error 12289: Not initialized.
ERR: Display.cpp:1004 (initialize): ANGLE Display::initialize error 12289: Not initialized.
[9802:0620/002407.051300:ERROR:gl_display.cc(508)] EGL Driver message (Critical) eglInitialize: Not initialized.
[9802:0620/002407.051518:ERROR:gl_display.cc(920)] eglInitialize SwANGLE failed with error EGL_NOT_INITIALIZED
[9802:0620/002407.051740:ERROR:gl_ozone_egl.cc(23)] GLDisplayEGL::Initialize failed.
[9802:0620/002407.055340:ERROR:viz_main_impl.cc(186)] Exiting GPU process due to errors during initialization
No protocol specified
No protocol specified
No protocol specified
No protocol specified
[9816:0620/002407.099533:ERROR:angle_platform_impl.cc(43)] DisplayVkXcb.cpp:59 (initialize): xcb_connect() failed, error 1
ERR: DisplayVkXcb.cpp:59 (initialize): xcb_connect() failed, error 1
[9816:0620/002407.099823:ERROR:angle_platform_impl.cc(43)] Display.cpp:1004 (initialize): ANGLE Display::initialize error 12289: Not initialized.
ERR: Display.cpp:1004 (initialize): ANGLE Display::initialize error 12289: Not initialized.
[9816:0620/002407.099997:ERROR:gl_display.cc(508)] EGL Driver message (Critical) eglInitialize: Not initialized.
[9816:0620/002407.100132:ERROR:gl_display.cc(920)] eglInitialize SwANGLE failed with error EGL_NOT_INITIALIZED
[9816:0620/002407.100276:ERROR:gl_ozone_egl.cc(23)] GLDisplayEGL::Initialize failed.
[9816:0620/002407.103936:ERROR:viz_main_impl.cc(186)] Exiting GPU process due to errors during initialization
No protocol specified
No protocol specified
No protocol specified
No protocol specified
[9823:0620/002407.173086:ERROR:angle_platform_impl.cc(43)] DisplayVkXcb.cpp:59 (initialize): xcb_connect() failed, error 1
ERR: DisplayVkXcb.cpp:59 (initialize): xcb_connect() failed, error 1
解决方案

从日志中的No protocol specified和xcb连接失败错误来看,问题核心是root用户未获取X服务器访问权限,同时Snap沙箱限制也可能加剧问题。可尝试以下步骤解决:

  • 步骤1:允许root访问当前用户的X显示
    在普通用户终端执行命令,授予root访问X服务器的权限:

    xhost +si:localuser:root
    
  • 步骤2:调整启动命令,指定DISPLAY环境变量
    使用以下命令启动VSCode,明确传递当前用户的显示参数:

    sudo DISPLAY=$DISPLAY code --verbose --user-data-dir=/root/.config/Code --no-sandbox
    
  • 步骤3:配置Snap权限(可选)
    若上述方法无效,给VSCode的Snap包添加必要的访问权限:

    sudo snap connect code:home :home
    sudo snap connect code:x11 :x11
    
  • 步骤4:优先避免以root身份运行VSCode(推荐)
    除非必须,不建议用root启动VSCode。可通过修改目标文件/目录的权限,让普通用户拥有读写权限,无需root即可操作。

内容的提问来源于stack exchange,提问作者satyasidhu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 16:45:21