记一次在多用户环境中解决 IntelliJ IDEA 启动错误 “Can’t connect to X11 window server using ‘:0’”
在多用户环境中,有时我们需要以非启动 X11 显示服务器的用户身份运行图形界面应用程序。然而,尝试这样做时,可能会遇到无法连接到 X11 显示服务器的错误。
例如当我尝试以 hadoop 用户启动 IntelliJ IDEA 时,出现以下错误:
java.awt.AWTError: Can't connect to X11 window server using ':0' as the value of the DISPLAY variable.
百度了很久并没有得到解决,冷静思索后发觉,这有没有可能是因为 当前
用户没有权限访问由 你的某个
用户启动的 X11 显示服务器。
说干就干!!!
解决方案
通过使用 xhost
命令,可以授予 当前
用户访问 某
用户的 X11 显示服务器的权限。以下是具体步骤:
切换到 root
用户并运行 xhost
命令:(当然你也可以切换到拥有X11 显示服务器的权限的用户)
su - root
xhost +si:localuser:当前用户
该命令允许当前用户访问 X11 显示服务器。
切换到 当前
用户并设置 DISPLAY 变量:
su - 当前用户
export DISPLAY=:0
idea.sh
这样, 当前用户就可以成功连接到 X11 显示服务器并启动 IntelliJ IDEA。