मैं दूरस्थ SSH सत्र में Gnome ऐप्स क्यों नहीं चला सकता?


9

एक दूरस्थ होस्ट का उपयोग करके लॉग इन करना ssh -X me@host, मैं सफलतापूर्वक चलाता हूं gnome-terminal -e "tail -F /var/log/file" &। जब मैं लॉग ऑफ करता हूं और फिर अगले दिन वही कोशिश करता हूं, तो मुझे यह मिलता है:

सत्र बस प्राप्त करने में विफल: सॉकेट / tmp / dbus-K99gT9yDjS से कनेक्ट करने में विफल: कनेक्शन ने गैर-फ़ैक्टरी मोड पर वापस आने से इनकार कर दिया। GConf दानव को बुलाने में विफल; बाहर निकलने। कॉन्फ़िगरेशन सर्वर से संपर्क करने में विफल; कुछ संभावित कारण हैं कि आपको ORBit के लिए TCP / IP नेटवर्किंग सक्षम करने की आवश्यकता है, या आपके पास सिस्टम क्रैश के कारण बासी NFS ताले हैं। जानकारी के लिए http://projects.gnome.org/gconf/ देखें । (विवरण - 1: सत्र से कनेक्शन प्राप्त करने में विफल: सॉकेट / tmp / dbus-K99gT9yDjS से कनेक्ट करने में विफल: कनेक्शन ने इनकार कर दिया)

मैं इस स्थिति में सूक्ति-टर्मिनल कैसे चलाऊं?


मुझे यहाँ एक प्रश्न नहीं पूछा जा रहा है। आपके पोस्ट के बंद होने से पहले आपको उसके बारे में कुछ करना चाहिए।
आजी हैमरथिफ

आप अपने प्रश्न के 'समाधान' भाग को काटकर उत्तर के रूप में प्रस्तुत करना चाह सकते हैं। वह स्वीकार्य व्यवहार है।
आजी हैमरथिफ

यदि आप SSH के साथ किसी अन्य मशीन में प्रवेश कर रहे हैं, तो आपको शेल / टर्मिनल एक्सेस मिलेगा। आपको उस मशीन पर एक टर्मिनल विंडो खोलने की आवश्यकता नहीं है। आप उस मशीन पर सीधे कमांड को अपनी मशीन पर टर्मिनल में टाइप करके निष्पादित कर सकते हैं।
आजी हैमरथिफ

2
जैसा कि निगेल नॉकंडे कहते हैं, कृपया अपने स्वयं के प्रश्न बटन के उत्तर को दबाएं, और उत्तर में अपने समाधान अनुभाग को कॉपी और पेस्ट करें । न केवल यह स्वीकार्य है, इसका प्रोत्साहन है।
derobert

2
इस बीच मैंने आपके प्रश्न का समाधान निकाल दिया है क्योंकि यह प्रश्न नहीं है। इस तरह के स्व-उत्तर वाले प्रश्न का स्वागत से अधिक है, लेकिन कृपया जवाब के रूप में उत्तर पोस्ट करें । हमारे सहायता केंद्र पर एक नज़र डालें या अधिक जानकारी के लिए 10 सेकंड का दौरा करें। आप संपादित इतिहास में मूल पाठ (इसलिए आपको इसे फिर से लिखने की आवश्यकता नहीं है) देख सकते हैं जिसे आप "संपादित एक्स मिनट पहले" लिंक पर क्लिक करके प्राप्त कर सकते हैं।
terdon

जवाबों:


7

वास्तव में जब SSH सत्र खुला होता है, तो यह एक dbus सत्र का शुभारंभ नहीं करता है। कुछ कार्यक्रम इसे लॉन्च कर सकते हैं, लेकिन तब सत्र इसके बारे में नहीं जानता (इसलिए इसे बंद नहीं कर सकता)।

डबस सत्र के बारे में न जानने का अर्थ यह भी है कि ऐसे प्रोग्राम जो डब का उपयोग करते हैं लेकिन इसे स्वयं लॉन्च नहीं करते हैं, उन्हें समस्या होगी।

dbus अनुभाग प्रति मशीन और प्रति X11 डिस्प्ले हैं। उनकी जानकारी $ HOME / .dbus / सत्र-बस / - में संग्रहीत की जाती है, हालांकि, वहां संदर्भित प्रक्रिया को बंद किया जा सकता है, इसलिए यह निर्धारित करने के लिए एक अतिरिक्त जांच की आवश्यकता है कि लॉन्चिंग dbus की आवश्यकता है या नहीं। फिर, वहाँ के चर सत्र के लिए निर्यात किए जाने हैं।

फिर यह एक आकर्षण की तरह काम करता है :)

मैंने अपनी .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]\+\)*$/\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

नोट्स: hostnamectl systemd का हिस्सा है और मशीन-आईडी को पुनः प्राप्त करने की अनुमति देता है, जिसे हम चाहते हैं कि वैरिएबल-लॉन्च प्रदर्शित करता है; उपयोग करके export $(dbus-launch)हम डब-लॉन्च के आउटपुट को पुनः प्राप्त करते हैं और चर निर्यात करते हैं


5

पिछले उत्तरों में से किसी ने भी मेरे मामले में काम नहीं किया, लेकिन डब-लॉन्च के माध्यम से एप्लिकेशन लॉन्च करने से काम चल गया:

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

3

मुझे मिला:

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

जिसके कारण मुझे यह प्रयास करना पड़ा:

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

अब मैं गनोम-टर्मिनल चला सकता हूं!


2
अविश्वसनीय रूप से पर्याप्त, यह 16.04 में भी काम किया। मुझे सिर्फ रीस्टार्ट कमांड को बदलना था sudo service dbus restart। धन्यवाद!
अवियो

⚠️ चेतावनी: डबिंग को फिर से शुरू करने से शायद आपका पूरा एक्स सेशन फिर से शुरू हो जाएगा
एडम काटज़


0

दिलचस्प ... बस पुनरारंभ dbus मेरे लिए काम नहीं किया, मैं भी मशीन आईडी फ़ाइल को हटाने के साथ ही पुनः आरंभ किया था।

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

यह SLES 11.4 सर्वर पर था जिसे मैंने हाल ही में VMWare में क्लोन किया था। मेरी समस्या यह थी कि मैं yast2 या gedit शुरू नहीं कर सका ...

ये वो गलतियाँ थीं जिन्हें मैं कमांड लाइन पर देख रहा था:

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] 

पारितोषिक के लिए धन्यवाद!


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.