Por que não consigo executar aplicativos do Gnome em sessões SSH remotas?

7

Efetuando login em um host remoto usando ssh -X me@host , executei com sucesso gnome-terminal -e "tail -F /var/log/file" & . Quando faço logoff e, em seguida, tento a mesma coisa no dia seguinte, recebo isso:

Failed to get the session bus: Failed to connect to socket /tmp/dbus-K99gT9yDjS: Connection refused Falling back to non-factory mode. Failed to summon the GConf demon; exiting. Failed to contact configuration server; some possible causes are that you need to enable TCP/IP networking for ORBit, or you have stale NFS locks due to a system crash. See http://projects.gnome.org/gconf/ for information. (Details - 1: Failed to get connection to session: Failed to connect to socket /tmp/dbus-K99gT9yDjS: Connection refused)

Como eu executo o gnome-terminal nessa situação?

    
por hourback 20.03.2014 / 17:08

6 respostas

3

Eu encontrei isto:

link

O que me levou a tentar isso:

$ sudo rm /var/lib/dbus/machine-id
$ sudo service messagebus restart

Agora eu posso rodar o gnome-terminal!

    
por 21.03.2014 / 01:44
6

Na verdade, quando uma sessão SSH é aberta, ela não inicia uma sessão dbus. Alguns programas podem iniciá-lo, mas a sessão não o conhece (portanto, não pode fechá-lo).

Não saber sobre a sessão dbus também significa que os programas que usam o dbus, mas não o iniciam, terão problemas.

As seções

dbus são por máquina e por tela X11. Suas informações são armazenadas em $ HOME / .dbus / session-bus / - no entanto, o processo referenciado pode estar fechado, portanto, uma verificação extra é necessária para determinar se a inicialização do dbus é necessária ou não. Então, as variáveis que existem são exportadas para a sessão.

Então funciona como um encanto:)

Eu coloquei o seguinte no meu arquivo .bash_profile:

# set dbus for remote SSH connections
if [ -n "$SSH_CLIENT" -a -n "$DISPLAY" ]; then
    machine_id=$(LANGUAGE=C hostnamectl|grep 'Machine ID:'| sed 's/^.*: //')
    x_display=$(echo $DISPLAY|sed 's/^.*:\([0-9]\+\)\(\.[0-9]\+\)*$//')
    dbus_session_file="$HOME/.dbus/session-bus/${machine_id}-${x_display}"
    if [ -r "$dbus_session_file" ]; then
            export $(grep '^DBUS.*=' "$dbus_session_file")
            # check if PID still running, if not launch dbus
            ps $DBUS_SESSION_BUS_PID | tail -1 | grep dbus-daemon >& /dev/null
            [ "$?" != "0" ] && export $(dbus-launch) >& /dev/null
    else
            export $(dbus-launch) >& /dev/null
    fi
fi

notas: hostnamectl faz parte do systemd e permite recuperar o ID da máquina o dbus-launch exibe as variáveis que queremos; usando export $(dbus-launch) , recuperamos a saída do dbus-launch e exportamos as variáveis

    
por 08.03.2015 / 14:46
3

Nenhuma das respostas anteriores funcionou no meu caso, mas o lançamento do aplicativo através do dbus-launch fez o trabalho:

ssh myhost "dbus-launch gnome-terminal --display localhost:10.0 &"
    
por 01.10.2015 / 14:35
0

Interessante ... apenas reiniciar o dbus não funcionou para mim, eu tive que remover o arquivo machine-id e reiniciar.

$ rcdbus stop
$ rm /var/lib/dbus/machine-id
$ rcdbus start

Isso foi em um servidor SLES 11.4 que eu tinha clonado recentemente no VMWare. Meu problema foi que eu não pude iniciar o yast2 ou o gedit ...

Estes foram os erros que eu estava vendo na linha de comando:

yast2

** (y2controlcenter-gnome:9981): WARNING **: error accessing /desktop/gnome/lockdown/disable_command_line [Failed to contact configuration server; some possible causes are that you need to enable TCP/IP networking for ORBit, or you have stale NFS locks due to a system crash. See http://projects.gnome.org/gconf/ for information. (Details -  1: Failed to get connection to session: Failed to connect to socket /tmp/dbus-W7H31tbhVY: Connection refused)]


** (y2controlcenter-gnome:9981): WARNING **:
GError raised: [Failed to contact configuration server; some possible causes are that you need to enable TCP/IP networking for ORBit, or you have stale NFS locks due to a system crash. See http://projects.gnome.org/gconf/ for information. (Details -  1: Failed to get connection to session: Failed to connect to socket /tmp/dbus-W7H31tbhVY: Connection refused)]

user_message: [libslab_get_gconf_value: error getting /desktop/gnome/applications/main-menu/lock-down/user_modifiable_apps] 

Obrigado pela dica!

    
por 29.09.2016 / 01:24
0

Basta executar:

> dbus-launch gnome-terminal
    
por 23.02.2017 / 00:55
-2

Tente isto:

rm $HOME/.dbus/session-bus/*
    
por 18.06.2015 / 16:02

Tags