Mon gnome-terminal 3.16.2-1
cessé de fonctionner après une mise à jour du système. J'utilise Linux arch 4.1.6-1-ARCH #1 SMP PREEMPT Mon Aug 17 08:52:28 CEST 2015 x86_64 GNU/Linux
.
Quand je le lance, je reçois
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
Google Googling le problème m'a dit de rétablir les parameters régionaux. Pour cela j'ai ouvert /etc/locale.gen
et fait en sorte que en_US.UTF-8 UTF-8
n'a pas été commenté.
J'ai ensuite exécuté sudo locale-gen
pour générer les locales. Pour couronner le tout, j'ai également lancé localectl set-locale LANG=en_US.UTF-8
et redémarré.
Lorsque le problème est apparu pour la première fois, j'ai reçu un message d'erreur concernant les parameters régionaux. Après avoir fait les étapes précédentes, ces messages d'erreur ont disparu, mais gnome-terminal
ne fonctionne toujours pas. Le message d'erreur ci-dessus rest affiché.
Comportement étrange que je puisse observer autrement:
Mon gestionnaire de files Nautilus ne démarre pas à partir du raccourci sur le bureau, mais démarre sans problème depuis la console.
gnome-terminal
lance quand il est exécuté en tant que root.
sorties 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=
sorties localectl
System Locale: LANG=en_US.UTF-8 VC Keymap: us X11 Layout: us,de
Solution :
Exécuter dans le terminal (alt + ctrl + F1 si vous n'avez installé que le gnome-terminal
), mais callbackez-vous que ce n'est pas permanent. Après le redémarrage, vous devrez le refaire:
dbus-update-activation-environment --all
Ou pour le résoudre de manière permanente (en supposant que vous avez un script manquant dans votre /etc/X11/xinit/xinitrc.d
voir l'explication pour plus de détails) chargez dans vos scripts appropriés ~/.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
Notez que cela ne fonctionnera que si vous avez le bon script dans /etc/X11/xinit/xinitrc.d
Explication :
Dans mon cas, le problème manquait la variable DISPLAY
pour les services de session D-Bus. En raison de cela, je ne pouvais pas démarrer gnome-terminal
ni nautilius
.
J'utilise Arch Linux
avec Slim
et certains .xinitrc
personnalisés. En raison de cela, j'ai manqué de charger du personnel supplémentaire à partir de /etc/X11/xinit/xinitrc.d/
. Dans le cas d' Arch Linux
il y a un script appelé 50-systemd-user.sh
qui s'occupe de la mise en place d'un environnement approprié pour la session D-Bus. Dans mon cas, il ressemble à ceci:
#!/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
Je crois comprendre que la variable DISPLAY
et XAUTHORITY
est imscope dans le bloc d'environnement systemd manager et également dans dbus-deamon --session
qui a utilisé ces variables lors de l'activation des services de session. Certaines applications (cela dépend également de la manière dont elles sont appelées) échouent en raison de l'absence de ces variables au démarrage.
J'ai ajouté la ligne suivante à ~/.profile
Elle définit la variable DBUS_SESSION_BUS_ADDRESS. Il a résolu le problème pour moi.
eval `dbus-launch --sh-syntax`
Ajoutez la ligne suivante au bas de ~ / .bashrc et un redémarrage fonctionne pour moi
dbus-update-activation-environment --all