当我在 kubuntu 下输入命令时xhost +
我得到了答案:
访问控制已禁用,客户端可以从任何主机连接
但是当尝试以不同的用户身份(su - 用户名)运行 X 应用程序时我得到了答案:
错误:无法打开显示:
连接链接: 即使使用 xhost 访问,仍显示“无法打开显示”
编辑
是的,$DISPLAY 是空的。我显然习惯了它总是被正确设置。谢谢 Arjen。
总结
使用替代用户(su
)而不使用破折号(su username
,而不是su - username
)
答案1
X 应用程序尝试连接到环境变量 DISPLAY 中引用的 X 服务器。输入echo $DISPLAY
显示其当前值。它应该看起来像:0
或localhost:0
。
当使用 启动su
-shell时su - username
,所有环境变量将被清除。这是一种安全措施。
您可以在 su 模式下使用以下命令启动 X 应用程序DISPLAY=:0 xapplication
(:0
用命令显示的值替换echo
)。