Eu encontrei isto:
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!
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?
Eu encontrei isto:
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!
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çõesdbus 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
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 &"
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:
** (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!
Basta executar:
> dbus-launch gnome-terminal
Tente isto:
rm $HOME/.dbus/session-bus/*