gnome-terminal停止工作


8

gnome-terminal 3.16.2-1系统更新后,我停止了工作。我在跑步Linux arch 4.1.6-1-ARCH #1 SMP PREEMPT Mon Aug 17 08:52:28 CEST 2015 x86_64 GNU/Linux

启动时我会收到

Error constructing proxy for     org.gnome.Terminal:/org/gnome/Terminal/Factory0: Error calling StartServiceByName for org.gnome.Terminal: GDBus.Error:org.freedesktop.DBus.Error.Spawn.ChildExited: Process org.gnome.Terminal exited with status 8

谷歌搜索问题告诉我重新设置区域设置。为此,我打开/etc/locale.gen并确保en_US.UTF-8 UTF-8未添加注释。

然后我跑去sudo locale-gen生成语言环境。最重要的是,我还奔跑localectl set-locale LANG=en_US.UTF-8并重新启动。

当问题首次出现时,我确实收到了一条与语言环境有关的错误消息。完成上述步骤后,这些错误消息消失了,但gnome-terminal仍然无法正常工作。上面的错误信息仍然存在。

我可能会观察到的奇怪行为:

我的Nautilus文件管理器不会从桌面快捷方式启动,但可以从控制台启动而不会出现问题。

gnome-terminal 以root身份运行时不会启动

locale 输出:

LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC=de_DE.UTF-8
LC_TIME=de_DE.UTF-8
LC_COLLATE="en_US.UTF-8"
LC_MONETARY=de_DE.UTF-8
LC_MESSAGES="en_US.UTF-8"
LC_PAPER=de_DE.UTF-8
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT=de_DE.UTF-8
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

localectl 输出

System Locale: LANG=en_US.UTF-8
   VC Keymap: us
  X11 Layout: us,de

没有〜/ .profile,所以我创建了该文件并将其放在那里。它是文件中唯一的文本,对吗?即使重启后也不起作用。
kunterbunt 2015年

好吧,bash显然会在/ etc / profile中查找现有文件,然后依次查找〜/ .bash_profile,〜/ .bash_login和〜/ .profile,直到找到现有文件为止。我有一个〜/ .bash_profile,所以我在该语言以及/ etc / profile中添加了语言设置,但无济于事。谢谢您的帮助。
kunterbunt 2015年

在我的编辑中追加了输出。
kunterbunt 2015年

抱歉,这花了我一段时间。不,它也不适用于其他用户。行为相同。
kunterbunt 2015年

我有完全相同的问题,但不知道如何解决。我将尝试降级某些内容,以查看其是否再次起作用。
aexl

Answers:


7

解决方案

在终端上运行(如果仅gnome-terminal已安装,请在alt + ctrl + F1上运行),但请记住它不是永久的,因此在重新启动后,您将需要再次执行此操作:

dbus-update-activation-environment --all

或永久解决该问题(假设您在/etc/X11/xinit/xinitrc.d查看说明中缺少脚本以获取更多详细信息),请加载~/.xinitrc适当的脚本:

if [ -d /etc/X11/xinit/xinitrc.d ] ; then
  for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do
    [ -x "$f" ] && . "$f"
  done
  unset f
fi

请注意,仅当您具有适当的脚本时,这才有效 /etc/X11/xinit/xinitrc.d

说明

就我而言,问题是缺少DISPLAYD-Bus会话服务的变量。由于这一点,我无法启动gnome-terminal,也没有nautilius

我使用Arch LinuxSlim和一些定制.xinitrc。因此,我错过了从中加载其他内容的操作/etc/X11/xinit/xinitrc.d/。如果Arch Linux有调用的脚本 50-systemd-user.sh,它将负责为D-Bus会话设置适当的环境。就我而言,它看起来像这样:

#!/bin/sh

systemctl --user import-environment DISPLAY XAUTHORITY

if which dbus-update-activation-environment >/dev/null 2>&1; then
    dbus-update-activation-environment DISPLAY XAUTHORITY
fi

我的理解是DISPLAYXAUTHORITY变量被导入到systemd管理器环境块中,并且dbus-daemon --session在激活会话服务时还会使用这些变量。一些应用程序(也取决于它们的调用方式)由于在启动过程中丢失了这些变量而失败。


为我工作。在带有gnome的Arch Linux临时安装中,我在gnome-terminal上收到错误代码10。
Marcel

这在Ubuntu 16.04上对我不起作用。
Cerin

使用“ systemctl --user import-environment DISPLAY XAUTHORITY”修复了我喜欢在Cygwin下在Windows上运行的损坏的gnome-terminal(使用ssh转发并在我的Debian机器上运行了gnome-terminal)。首先运行该命令可修复gnome-terminal,它再次出现在X服务器计算机上!
Falken教授

4

~/.profile将以下行添加到设置DBUS_SESSION_BUS_ADDRESS变量。它为我解决了问题。

eval `dbus-launch --sh-syntax`

0

将以下行添加到〜/ .bashrc的底部,重新启动对我有效

dbus-update-activation-environment --all

1
这对我没有用。
塞林

0

以我为例,在更改localectl之后,我.vnc/xstartup通过注释以下这一行来修改了我的文件:

gnome-session --session=gnome-flashback-metacity --disable-acceleration-check --debug &

这是我的.vnc / xstartup的样子:

#!/bin/sh
# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
x-window-manager &
export XKL_XMODMAP_DISABLE=1
export XDG_CURRENT_DESKTOP="GNOME-Flashback:Unity"
export XDG_MENU_PREFIX="gnome-flashback-"
unset DBUS_SESSION_BUS_ADDRESS

#gnome-session --session=gnome-flashback-metacity --disable-acceleration-check --debug &
gnome-panel &
gnome-settings-daemon &
metacity &
nautilus &
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.