gnome-terminal 无法启动(超时)

Wer*_*nze 4 gnome-terminal 18.04

我刚刚从 Ubuntu 16.04 升级到 18.04。我的工作流程是使用 VcXsrv 从 Windows 连接到 Ubuntu(使用 X 隧道的 ssh),在 Ubuntu 上启动一个 xterm。在 xterm 中,我正在输入gnome-terminal以获得 gnome 终端。

由于升级,这不再起作用。我正进入(状态

$ gnome-terminal  
# Couldn't register with accessibility bus: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.  
# Error constructing proxy for org.gnome.Terminal:/org/gnome/Terminal/Factory0: Fehler beim Aufruf von StartServiceByName für org.gnome.Terminal: Zeitüberschreitung wurde erreicht  
Run Code Online (Sandbox Code Playgroud)

或从英语语言环境开始时

$ LANG=en_US.utf8 gnome-terminal  
# Couldn't register with accessibility bus: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.  
# 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)

我并不总是得到第一行,但我总是得到超时错误。

深入研究我发现的问题

  • sudo gnome-terminal 作品
  • gnome-terminal 在 PC 上本地登录时在 xterm 中运行时工作
  • 当我还在 PC 上本地登录时,然后gnome-terminal在远程会话的 xterm 中,在 PC 上的本地会话上打开一个 gnome 终端(仍然得到关于注册无障碍总线的第一个错误行)
  • 当我还通过 rdp(Windows 网络连接)gnome-terminal登录时,ssh 会话中的 a 会在 xrdp 会话中打开一个 gnome-terminal
  • 当我通过 rdp(Windows 网络连接)登录时,在那里注销,然后gnome-terminal可以打开一个 gnome-terminal

我该怎么做才能使gnome-terminal远程会话的 xterm 正常工作?

小智 13

同样的问题,找到了解决办法。

当我在 'sudo bash' 之后启动 gnome-terminal 时,在第一个终端中测试时在第二个终端中运行 'tail -f /var/log/syslog' 给出以下内容:

Mar 23 10:11:59 X399-DESIGNARE-EX dbus-daemon[2584]: [session uid=0 pid=2582] Activating service name='org.gnome.Terminal' requested by ':1.6' (uid=0 pid=2929 comm="/usr/bin/gnome-terminal.real " label="unconfined")
Mar 23 10:11:59 X399-DESIGNARE-EX gnome-terminal-[2934]: Couldn't connect to accessibility bus: Failed to connect to socket /tmp/dbus-GAXcx1c8OL: Connection refused
Mar 23 10:11:59 X399-DESIGNARE-EX dbus-daemon[2584]: [session uid=0 pid=2582] Successfully activated service 'org.gnome.Terminal'
Mar 23 10:11:59 X399-DESIGNARE-EX gnome-terminal-[2934]: The owner of /home/<user>/.config/ibus/bus is not root!
Run Code Online (Sandbox Code Playgroud)

以我自己的身份运行 gnome-terminal 时,我得到以下信息:

Mar 23 10:16:30 X399-DESIGNARE-EX dbus-daemon[2564]: [session uid=1000 pid=2564] Activating via systemd: service name='org.gnome.Terminal' unit='gnome-terminal-server.service' requested by ':1.4' (uid=1000 pid=2959 comm="/usr/bin/gnome-terminal.real " label="unconfined")
Mar 23 10:16:30 X399-DESIGNARE-EX systemd[2435]: Starting GNOME Terminal Server...
Mar 23 10:16:30 X399-DESIGNARE-EX systemd[2435]: gnome-terminal-server.service: Main process exited, code=exited, status=10/n/a
Mar 23 10:16:30 X399-DESIGNARE-EX gnome-terminal-server[2962]: Unable to init server: Could not connect: Connection refused
Mar 23 10:16:30 X399-DESIGNARE-EX gnome-terminal-server[2962]: Failed to parse arguments: Cannot open display:
Mar 23 10:16:30 X399-DESIGNARE-EX systemd[2435]: gnome-terminal-server.service: Failed with result 'exit-code'.
Mar 23 10:16:30 X399-DESIGNARE-EX systemd[2435]: Failed to start GNOME Terminal Server.
Run Code Online (Sandbox Code Playgroud)

...经过大量挖掘,我终于发现gnome-terminal 未启动,这表明当从非 root 用户请求服务时,dbus 没有刷新其环境存在问题。以下步骤可解决此问题:

  1. 在您的主文件夹中创建一个脚本,例如:

vim ~/term

  1. 将以下内容添加到脚本中并保存:

#!/usr/bin/env bash dbus-update-activation-environment --systemd --all gnome-terminal &

  1. 使脚本可执行

chmod 755 ~/term

  1. 运行 '~/term' 以用户(不是 root)身份启动 gnome-terminal,它应该可以正确启动。

给版主的注意:

请不要删除为问题提供更多详细信息的答案。您删除的内容并未违反发布指南,并为任何试图追踪解决方案的人提供了大量附加信息。这个答案没有提供额外的信息,我不愿意努力恢复它。

这个答案解决了这个问题。

请不要删除它!