我有一个 Debian 10 系统,安装并运行了桌面环境。当我打开终端并尝试从命令行运行任何 GUI 应用程序(例如 gedit)时,它无法打开并显示以下消息:
# gedit
Unable to init server: Could not connect: Connection refused
(gedit:3575): Gtk-WARNING **: 12:26:48.311: cannot open display:
任何用户都会发生这种情况,而不仅仅是 root。
我尝试根据建议运行以下命令,但无济于事:
export DISPLAY=:0
export DISPLAY=:1
export DISPLAY=:2
export DISPLAY=:3
export DISPLAY=:4
export DISPLAY=:5
export DISPLAY=:6
xhost +
有人知道这里出了什么问题吗?
编辑:
如果我export DISPLAY=:0
以普通用户身份运行,则普通用户可以从命令行运行 GUI 程序,但是每当我尝试使用 root 执行相同操作时,都会失败并显示以下消息:
No protocol specified
Unable to init server: Could not connect: Connection refused
No protocol specified
Unable to init server: Could not connect: Connection refused
No protocol specified
Unable to init server: Could not connect: Connection refused
(gedit:3609): Gtk-WARNING **: 12:33:16.307: cannot open display: :0
答案1
显示器属于用户。因此,如果您想允许其他用户在其上绘图(将其视为打印机),您必须授予权限。
有很多方法可以做到这一点,但最简单的可能是打开图形终端并运行:
$ xhost +
这将允许其他用户连接到服务器。
然后,您可以从其他用户运行:
$ export DISPLAY=:0
它可能是另一个显示,例如:1 ...
如果您想避免这两个步骤,您可以ssh
使用 -X 标志(转发显示)进入其他用户:
$ ssh -X -l other_user localhost
答案2
我刚刚在命令-E
后添加了开关。sudo
例如:
sudo -E gedit /etc/apt/sources.list