gnome-open gera este erro quando executado dentro do tmux

5

O erro que recebo é o seguinte:

GConf Error: Failed to contact configuration server; the most common cause is a missing or misconfigured D-Bus session bus daemon. 
See http://projects.gnome.org/gconf/ for information. 
(Details -  1: Failed to get connection to session: Error connecting: Connection refused)
Failed to open bus: Failed to connect to socket /tmp/dbus-BYC0LHrEHk: Connection refused

Alguma sugestão?

    
por dan 29.06.2011 / 17:38

4 respostas

4

Em vez de deixar o Gnome executar dbus-launch para criar um endereço D-Bus aleatório, inicie dbus-daemon explicitamente no início da sua inicialização do X session e forneça um endereço fixo como unix:path=~/.dbus-$HOSTNAME-$DISPLAY .

Dadas as informações no relatório de erros , você pode até conseguir com unset DBUS_SESSION_BUS_ADDRESS e deixe os aplicativos descobrirem o endereço do barramento nas propriedades da janela raiz.

A partir de 15.10, a instância dbus por sessão é criada através de um Upstart job de sessão . O arquivo de trabalho em questão é /usr/share/upstart/sessions/dbus.conf . Você pode substituir o endereço aleatório padrão por sobrescrevendo a sub-rotina pre-start script que especifica o endereço a ser usado. Crie ~/.config/upstart/dbus.override com o seguinte:

pre-start script
    DBUS_SESSION_BUS_ADDRESS=unix:path=$HOME/.dbus-$(hostname)-$(echo $DISPLAY | sed -e s/:/%3A/)
    initctl set-env DBUS_SESSION_BUS_ADDRESS=$DBUS_SESSION_BUS_ADDRESS
end script

O endereço fixo será usado depois do próximo login.

    
por Gilles 08.03.2013 / 02:04
3

Este é aparentemente um bug no gconf que já tem uma correção (se eu entendi corretamente deste relatório de bug ). Enquanto isso, o seguinte deve resolver o problema:

export DBUS_SESSION_BUS_ADDRESS=$(tr '
export DBUS_SESSION_BUS_ADDRESS=$(tr '%pre%' '\n' < /proc/$(pgrep -U $(whoami) gnome-session)/environ|grep ^DBUS_SESSION_BUS_ADDRESS=|cut -d= -f2-)
' '\n' < /proc/$(pgrep -U $(whoami) gnome-session)/environ|grep ^DBUS_SESSION_BUS_ADDRESS=|cut -d= -f2-)
    
por taneli 02.07.2011 / 23:13
3

Ou se, como eu, você não usa o gnome:

unset DBUS_SESSION_BUS_ADDRESS

    
por Grégoire Favre 14.10.2011 / 16:02
2

O tmux pode ser avisado para sempre redefinir certas env vars:

update-environment variables

Set a space-separated string containing a list of environment variables to
be copied into the session environment when a new session is created or an
existing session is attached. Any variables that do not exist in the source
environment are set to be removed from the session environment (as if -r was
given to the set-environment command). The default is "DISPLAY SSH_ASKPASS
SSH_AUTH_SOCK SSH_AGENT_PID SSH_CONNECTION WINDOWID XAUTHORITY".

Com base nisso, pode ser apropriado adicionar DBUS_SESSION_BUS_ADDRES a essa opção em ~/tmux.conf :

set-option -g update-environment "DBUS_SESSION_BUS_ADDRESS DISPLAY SSH_ASKPASS SSH_AUTH_SOCK SSH_AGENT_PID SSH_CONNECTION WINDOWID XAUTHORITY"

Isso funcionou para mim.

    
por arand 04.03.2013 / 15:30

Tags