Nic*_*ark 3 linux ssh xforwarding x11 gnome-terminal
我有一个无头虚拟机(运行 Ubuntu 服务器 17.04),我使用 SSH 访问它。我对 X11 转发的基础知识很熟悉,并且我可以很好地转发 xterm 和朋友。XFCE终端也转发OK。
我希望能够使用 Gnome 终端,但它似乎无法启动。相反,它只是挂起一段时间并最终出错:
Error constructing proxy for org.gnome.Terminal:/org/gnome/Terminal/Factory0: Error calling StartServiceByName for org.gnome.Terminal: Timeout was reached
Run Code Online (Sandbox Code Playgroud)
有趣的是,如果我的 VM 上运行本地桌面会话(通过 startx 启动),则 gnome-terminal 可以通过 X11 远程工作。
我猜测需要运行某种 Gnome 服务,但我无法弄清楚它是什么或如何在完整桌面会话的上下文之外启动它。我通常不会启动它们,因为默认情况下虚拟机是无头的。
有人知道我可以做些什么来让 Gnome 终端远程工作,而不必在我的虚拟机上本地启动 GUI 桌面会话吗?
小智 7
这是行不通的,因为gnome-terminal
(像任何其他的一样gnome-thing
)会尝试连接到 dbus,但在很长一段时间没有收到响应后会失败。
最简单的解决方法就是为您的会话启动一个 dbus 实例:
export $(dbus-launch)
gnome-terminal
Run Code Online (Sandbox Code Playgroud)
如果您在第一次运行 后在远程计算机上启动了Wayland会话,则必须再次运行它,否则将在远程显示器上启动 Wayland 实例,而不是在转发的显示器上启动 X11 实例。export $(dbus-launch)
gnome-terminal
gnome-terminal
这种情况下的另一个解决方法是显式运行 X11,gnome-terminal-server
该 X11 将在最后一个使用它的窗口关闭后终止。例子:
#! /bin/bash
ID=foo.bar$RANDOM
GDK_BACKEND=x11 /usr/libexec/gnome-terminal-server --app-id "$ID" &
sleep .4 # yuck
gnome-terminal --app-id "$ID"
wait
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
12910 次 |
最近记录: |