AWS EC2 Ubuntu 18.04 LTS 并导出 $DISPLAY 以运行图形应用程序

AWS EC2 Ubuntu 18.04 LTS 并导出 $DISPLAY 以运行图形应用程序

如果我通过 SSH 进入 Raspberry Pi 或运行 Ubuntu 18.04 LTS 的本地 VM,那么我可以运行:

user:~$ export DISPLAY=:0
user:~$ gedit

这将在操作系统上打开一个带有文本编辑器 gedit 的图形窗口。但是,如果我通过 SSH 进入运行 Ubuntu 18.04 LTS 的 AWS EC2 实例,然后运行“export DISPLAY=:0”然后运行“gedit”,我会收到以下错误:

No protocol specified
Unable to init server: Could not connect: Connection refused

(gedit:<proces id>): Gtk-WARNING **: <time stamp>: cannot open display: :0

有没有办法找到显示编号,或者有其他方法可以启动图形应用程序?请注意,我不要想要通过传递 -X 标志等将 GUI 窗口转发回我的终端。

答案1

进行图形会话它在登录时某处显示号码。

例如,将这些放入您的 ~/.Xprofile 中:

echo "$DISPLAY" > ~/tmp/current-display
echo "$XAUTHORITY" > ~/tmp/current-xauthority

确保;确定一切有效,您还应该用$DBUS_SESSION_BUS_ADDRESS和重复此操作$XDG_RUNTIME_DIR,尽管它们在基于 systemd 的系统上经常是静态的,但并非总是如此。

稍后您将能够运行:

export DISPLAY=$(< ~/tmp/current-display)
export XAUTHORITY=$(< ~/tmp/current-xauthority)

请注意,No protocol specified通常意味着显示的数字是正确的,但它被否认由于缺少 Xauth 数据而导致的连接。

相关内容