Gnome uygulamalarını uzak SSH oturumu üzerinden neden çalıştıramıyorum?


9

Kullanarak uzak bir ana bilgisayara giriş ssh -X me@host, başarıyla çalıştırın gnome-terminal -e "tail -F /var/log/file" &. Oturumu kapatıp ertesi gün aynı şeyi denediğimde şunu alıyorum:

Oturum veri yolu alınamadı: Soket / tmp / dbus-K99gT9yDjS'ye bağlanılamadı: Bağlantı reddedildi Fabrika dışı moda geri dönme. GConf iblisini toplayamadı; çıkarken. Yapılandırma sunucusuyla bağlantı kurulamadı; bazı olası nedenler ORBit için TCP / IP ağını etkinleştirmeniz veya sistem çökmesi nedeniyle eski NFS kilitleriniz olmasıdır. Bilgi için http://projects.gnome.org/gconf/ adresine bakın . (Ayrıntılar - 1: Oturumla bağlantı kurulamadı: soket / tmp / dbus-K99gT9yDjS'ye bağlanılamadı: Bağlantı reddedildi)

Bu durumda gnome terminalini nasıl çalıştırırım?


Burada sorulan bir soru görmüyorum. Gönderiniz kapanmadan önce bu konuda bir şeyler yapmalısınız.
Agi Hammerthief

'Çözüm' bölümünü sorunuzdan kesmek ve yanıt olarak göndermek isteyebilirsiniz. Bu kabul edilebilir bir davranış.
Agi Hammerthief

SSH ile başka bir makineye giriş yapıyorsanız, kabuk / terminal erişimine sahip olursunuz. Bu makinede bir terminal penceresi açmanıza gerek yoktur. Komutları doğrudan makinenizdeki terminale yazarak o makinede yürütebilirsiniz.
Agi Hammerthief

2
Nigel Nquande'nin dediği gibi, lütfen kendi sorularınızı yanıtlayın düğmesine basın ve Çözüm bölümünüzü kopyalayıp yanıta yapıştırın . Sadece kabul edilebilir değil, teşvik edilir.
derobert

2
Bu arada , bir soru olmadığı için çözümü sorunuzdan kaldırdım . Kendinden cevap soru Bu tür karşılama daha fazladır ama sonrası cevapları memnun cevaplar . Daha fazla bilgi için yardım merkezimize bir göz atın veya 10 saniyelik tura katılın. Düzenleme geçmişinde "X dakika önce düzenlendi" bağlantısını tıklayarak orijinal metni (böylece tekrar yazmanıza gerek yoktur) görebilirsiniz.
terdon

Yanıtlar:


7

Gerçekten de bir SSH oturumu açıkken bir dbus oturumu başlatmaz. Bazı programlar başlatabilir, ancak daha sonra oturum bunu bilmez (bu nedenle kapatamaz).

Dbus oturumunu bilmemek, aynı zamanda dbus kullanan ancak kendileri başlatmayan programların da sorun yaşayacağı anlamına gelir.

dbus bölümleri makine başına ve X11 ekranı içindir. Bilgileri $ HOME / .dbus / session-bus / dizininde saklanır - ancak burada başvurulan işlem kapatılabilir, bu nedenle dbus başlatma gerekip gerekmediğini belirlemek için ekstra bir kontrol gereklidir. Ardından, değişkenler oturuma aktarılacaktır.

Sonra bir cazibe gibi çalışır :)

Aşağıdakileri .bash_profile dosyama koydum:

# 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]\+\)*$/\1/')
    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

notlar: hostnamectl, systemd'nin bir parçasıdır ve makine kimliğini almayı sağlar dbus-launch istediğimiz değişkenleri görüntüler; kullanarak export $(dbus-launch)biz dbus-lansman çıkışını almak ve değişkenleri ihracat


5

Benim durumumda önceki cevapların hiçbiri işe yaramadı ama uygulamayı dbus-launch ile başlatmak işi yaptı:

ssh myhost "dbus-launch gnome-terminal --display localhost:10.0 &"

3

Bunu buldum:

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=639261

Bu da bunu denememe neden oldu:

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

Şimdi gnome terminalini çalıştırabilirim!


2
İnanılmaz derecede, 16.04'te de çalıştı. Sadece yeniden başlatma komutunu değiştirmek zorunda kaldım sudo service dbus restart. Teşekkürler!
Avio

Warning️ Uyarı: dbus'u yeniden başlatmak muhtemelen tüm X oturumunuzu yeniden başlatacaktır
Adam Katz

1

Sadece koş:

> dbus-launch gnome-terminal

1
Bu neden yardımcı olabilir?
DarkHeart

1
Bu da benim için çalıştı. Neden olduğuna dair hiçbir fikrim yok.
Robert Lugg

0

İlginç ... sadece dbus'u yeniden başlatmak benim için işe yaramadı, ayrıca makine kimliği dosyasını da kaldırmam ve yeniden başlatmam gerekiyordu.

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

Bu, VMWare'de klonladığım bir SLES 11.4 sunucusuydu. Benim sorunum yast2 veya gedit'i başlatamadım ...

Bunlar komut satırında gördüğüm hatalardı:

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] 

Bahşiş için teşekkürler!


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.