gksu: Gtk-WARNING **: 无法打开显示: :0

d_i*_*ble 52 xorg sudo gtk gksu pkexec

突然间 gksu 停止为我工作:

~$ gksu gparted

(gpartedbin:24252): Gtk-WARNING **: cannot open display: :0
Run Code Online (Sandbox Code Playgroud)

同样的情况发生在gparted-pkexec

~$ gparted-pkexec 
No protocol specified

(gpartedbin:25454): Gtk-WARNING **: cannot open display: :0
Run Code Online (Sandbox Code Playgroud)

什么可能导致这种情况?

我没有通过 SSH 或 VNC 运行它。这是普通终端窗口中的localhost 。

小智 85

如果运行 Ubuntu 17.10 或更新版本,当应用程序尚未更新为完全支持 Wayland 时,可能会出现此问题。作为应用程序更新之前的解决方法,您可以运行

xhost +SI:localuser:root
Run Code Online (Sandbox Code Playgroud)

这将允许root用户在您的桌面上显示应用程序。另请参阅此问答以了解其他可能的解决方法:为什么 gksu/gksudo 或使用 sudo 启动图形应用程序不能与 Wayland 一起使用?

来源


Mar*_*kal 12

尝试xhost +localhost在终端中运行,然后再次运行该命令。这允许您系统上的所有用户(即 root)在您的屏幕上打开窗口。确保使用 +localhost 而不是简单的 +,因为仅允许来自 localhost 的连接比允许来自任何地方的连接更安全。

要使其永久化,请~/.xinitrc像这样编辑文件:

gedit ~/.xinitrc

编辑文件看起来像这样(它应该在开始时为空):

#! /bin/bash
xhost +localhost &
Run Code Online (Sandbox Code Playgroud)

现在保存文件,注销并登录。现在一切都应该使用 sudo 运行得很好。

我无法在 14.04 上重现您的问题,但是过去 sudo / gksu 抛出此错误时,这对我有用。

资料来源:

  1. http://www.nikhef.nl/~mjg/xhost_plus.html
  2. https://forums.opensuse.org/showthread.php/405624-sudo-doesnt-open-X-programs
  3. https://wiki.ubuntu.com/CustomXSession

  • 在[redis](https://www.reddit.com/r/archlinux/comments/4pzy7e/gparted_refuses_to_open_displaying_gpartedbin454/d9x4xyv/)上,建议使用`xhost +local:`。之后,我可以从终端启动 gparted,但是使用 `xhost + localhost` 不起作用。 (5认同)
  • 这会产生一个错误:**xhost: 无法打开显示 ""** (2认同)

小智 7

在终端中执行以下操作:

nano /home/user/.bashrc # user = name of your user
Run Code Online (Sandbox Code Playgroud)

在最后添加以下行。

export XAUTHORITY=$HOME/.Xauthority
Run Code Online (Sandbox Code Playgroud)

  • 如果您可以添加一些关于如何解决问题以及它是否有任何不利副作用的解释,会很有用吗? (5认同)