gnome 终端停止工作

gnome 终端停止工作

我的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

答案1

解决方案:

在终端中运行(如果只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 LinuxwithSlim和一些定制的.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在激活会话服务时也使用这些变量。某些应用程序(这也取决于它们的调用方式)由于在启动期间丢失这些变量而失败。

答案2

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

eval `dbus-launch --sh-syntax`

答案3

在 ~/.bashrc 底部添加以下行,重新启动对我有用

dbus-update-activation-environment --all

答案4

就我而言,更改 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 &

相关内容