अनुत्तरदायी / फ्रीज हो जाने के बाद, गनोम-शेल को कैसे पुनः आरंभ करें?


123

कभी-कभी, मेरा ग्नोम-शेल जम जाता है। मैं काम कर रहा (बैकग्राउंड) बैकग्राउंड प्रोसेस (म्यूजिक प्ले कर) देख सकता हूं, लेकिन मैं गनोम में कुछ नहीं कर सकता। नहीं Alt+ F2+ R

मैं कंसोल का उपयोग करके स्विच कर सकता हूं: Ctrl+ Alt+ F1, उसी उपयोगकर्ता के रूप में लॉगिन करें और निष्पादित करें:

gnome-shell --replace

और वापस Ctrl+ F7, लेकिन फिर, मुझे एक अजीब व्यवहार मिलता है। उदाहरण के लिए मैं नेटवर्क कनेक्शन संपादित नहीं कर सकता। मैं लॉगआउट नहीं कर सकता। सूक्ति-शैल को पुनः आरंभ करने का उचित तरीका क्या है?


gnome-shell overviewयदि आप बता सकते हैं कि खोज-कार्य का उपयोग किस विशेष अवसर पर या किस अवसर पर किया जाता है?
v2r

1
नहीं, यह लॉगिन के बाद जमा होता है (अधिकतर), आमतौर पर अनडॉकिंग के बाद।
jk_

2
अब तक, मुझे काम करने का हल नहीं मिला। अंत में, मैं इस समाधान के साथ समाप्त होता हूं ।
jk_

यदि आप निम्न में से किसी भी शेल-एक्सटेंशन का उपयोग करते हैं: तो एक्सटेंशन .gnome.org उन सभी को निष्क्रिय कर देता है और रिबूट करता है, यह देखने के लिए कि क्या उनमें से कोई परेशानी का कारण है। मैं सूक्ति-शेल के पुराने संस्करण का उपयोग करता हूं और उस सटीक कारण के कारण बहुत सारे मुद्दे थे! (शायद यह उतना ही सरल है!)
v2r

1
मैंने उन सभी को निष्क्रिय करने की कोशिश की, अभी भी समस्या है :(
jk_

जवाबों:


173

आसान तरीका है बस Alt+ दबाएं F2, rफिर टाइप करें Enter। यह तब तक काम करेगा जब तक शेल प्रयोग करने योग्य हो।

आप SIGQUITउस gnome-shellप्रक्रिया को भी भेज सकते हैं जो केवल शेल को समाप्त करेगी:

killall -3 gnome-shell

अन्य विधियां अधिक विनाशकारी साधनों का उपयोग करती हैं, जो सभी अनुप्रयोगों को बंद कर देती हैं, यह नहीं होना चाहिए।


3
SIGHUPहालांकि टिप के लिए +1 सही कमांड नहीं होगा killall -1 gnome-shell? के अनुसार कम से कम man 7 signal, के लिए मूल्य SIGHUPहै। मूल्य 3 से मेल खाती है SIGQUIT। मैंने गनोम शेल को मूल्य 1 भेजा है और उम्मीद के मुताबिक इसे फिर से शुरू किया गया।
चरखी

@Chriki हाँ, यह sigquit था, अधिकांश संकेतों के माध्यम से सूक्ति-शेल प्रक्रिया समाप्त हो जाएगी।
ब्राह्म

मैंने फेडोरा 25 पर यह कोशिश की और killall -3 gnome-shellमेरे लिए सभी अनुप्रयोगों को मार डाला।
comfreak

6
काश हम भी रूप में बिल्कुल वैसा ही प्रभाव पड़ रहा एक टर्मिनल कमांड इस्तेमाल कर सकते हैं Alt+F2और rपूरे स्क्रीन रिक्त बिना, यानी ...
सादी

मैं अपने ubuntu vm पर बहुत बड़ी दुर्घटनाग्रस्त होने के मुद्दे पर दौड़ता हूँ, मैं हर बार ऐसा होने पर VM को पुनः आरंभ करने जा रहा था। इस आदेश का उपयोग करने और इस मुद्दे को हल करने में सक्षम होने के कारण, एक लाख धन्यवाद।
नाथन एफ।

32
  • यदि आप अपने आप को पुनः आरंभ करने के लिए सूक्ति-शैल से "अच्छी तरह" पूछना चाहते हैं, तो आप इसे निम्नलिखित आदेश के साथ डब पर आंतरिक पुनरारंभ कार्य कह सकते हैं (यह मानते हुए कि आपके पास DBUS_SESSION_BUS_ADDRESSसही मान के लिए env var सेट है और एक ही उपयोगकर्ता के रूप में चलता है):

    dbus-send --type=method_call --print-reply --dest=org.gnome.Shell /org/gnome/Shell org.gnome.Shell.Eval string:'global.reexec_self()'
    
  • यदि आप एक नया उदाहरण चलाना चाहते हैं, gnome-shell --replaceतो ठीक करना चाहिए। कंसोल पर आपको आवश्यक पर्यावरण चर जैसे DISPLAY, DBUS*और इसी तरह परिभाषित करना होगा । को देखें/proc/$gnome_shell_pid/environ

  • यदि आप मौजूदा एक को पुनः आरंभ करना चाहते हैं, तो killall -HUP gnome-shellयह कर देगा। यदि आप ऐसा अक्सर करते हैं, तो सूक्ति-शेल सभी एक्सटेंशनों को अक्षम कर सकता है, आपको जबरदस्ती लॉग-इन कर सकता है या अन्यथा गैर-उपयोगकर्तावादी तरीके से व्यवहार कर सकता है।

मैंने एक शेल फ़ंक्शन बनाया है, जो सूक्ति-शेल प्रक्रिया वातावरण से DBUS_SESSION_BUS_ADDRESS सेट करता है (ताकि आप कर सकें logout otheruser1 otheruser2) askubuntu.com/a/874504/17941
sehe

3
Error org.freedesktop.DBus.Error.ServiceUnknown: The name org.gnome.Shell was not provided by any .service filesबिना सूडो और Failed to open connection to "session" message bus: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11सूडो के साथ त्रुटि हुई ।
Seanny123

7

यहाँ एक अलग समाधान है:

  1. दबाने से एक स्थानीय टर्मिनल में प्रवेश करें CTRL+ ALT+ F1
  2. कमांड चलाएँ:

    sudo kill -HUP $(pidof gnome-shell)
    
  3. CTRL+ ALT+ दबाकर चित्रमय इंटरफ़ेस पर लौटें F7

पुनश्च: मैं gdm3 के बजाय lightdm का उपयोग कर रहा हूँ।


1
सरल, और एक आकर्षण की तरह काम करता है! (कम से कम मेरे लिए)
कटाई

6

यदि आपने ubuntu gnome स्थापित किया है, जो आपके पास होना चाहिए, तो आप gnome प्रदर्शन प्रबंधक का उपयोग कर सकते हैं। उस स्थिति में आपको दूसरे TTY में बदलना चाहिए, जैसे Ctrl + Alt + F4 और फिर

sudo service gdm restart

मैंने हाल ही में ऐसी स्थिति के बारे में एक लेख भी लिखा है:

मदद, मेरे लिनक्स डेस्कटॉप हैंग हो जाता है!

अच्छी किस्मत!


5
सावधान रहें , मैंने इसे उसी TTY पर किया और इसने मेरे वर्तमान सत्र को मार डाला ..
रूसो

इसने वर्तमान सत्र को पूरी तरह से गड़बड़ कर दिया: यह झपकी लेना शुरू कर दिया और फिर निर्वाण में चला गया .. को रिबूट करना पड़ा।
निक ओ ललाई

5

चूंकि आप संतुष्ट नहीं हैं gnome-shell --replace, इसलिए आप प्रदर्शन प्रबंधक को स्वयं पुनः आरंभ करने का प्रयास कर सकते हैं।

sudo service lightdm restart

मुझे लगता है कि आपके द्वारा चलाए जा रहे अन्य प्रक्रियाओं को मार देगा। साथ ही http://worldofgnome.org/how-to-restart-gnome-shell-when-freezes-s-// देखें

यदि आप गंभीरता से किसी ऐसी चीज में हैं जो आपको हर बार फ्रीज करती है, तो SysRq को https://www.kernel.org/doc/Documentation/admin-guide/sysrq.rst में बताए अनुसार सक्षम करें , और फिर <alt><sysrq/print_screen_key><k>वहां पर जो कुछ भी हो उसे मारने के लिए दें स्क्रीन।


3
Lighdm को पुनरारंभ करना काम करता है, लेकिन मैं इससे बचना चाहता हूं, क्योंकि मुझे एक खरोंच से सब कुछ फिर से खोलना होगा। खासकर अगर मुझे पता है कि यह एक सूक्ति-शेल की समस्या है और इसे फिर से शुरू करना लगभग काम करता है।
jk_

मैं अन्य तरीकों से अनभिज्ञ हूँ कि केवल सूक्ति शैल को पुनः स्थापित करना। क्या आपने कोशिश की कि क्या DISPLAY=:7 gnome-shell --replaceकाम करता है?
जय औरबिंद

1
नहीं, यह नहीं है, मैं डिस्प्ले का उपयोग करता हूं, जब wशो डिस्प्ले से भिन्न होता है : 0 । यदि मैं गलत प्रदर्शन का उपयोग करता हूं तो मुझे एक त्रुटि मिलती है।
jk_

क्षमा करें, मैं विकल्पों से बाहर हूं। आपको संभवत: सूक्ति उपयोगकर्ता / डेवलपर मेलिंग सूची में पूछना चाहिए। पहले यह पता लगाएँ कि आपके पास असामान्यताओं के साथ alt-f2-rया gnome-shell --replaceजब यह सूक्ति का अनुशंसित तरीका है।
जय औरबिंद

तो क्या मैं भी अधिक ईएनवी चर की स्थापना इस लिंक का पालन ​​किया था , लेकिन मैं अभी भी एक अलग टर्मिनल से सूक्ति-शेल को पुनरारंभ करते समय नेटवर्क कनेक्शन को संपादित नहीं कर सकता। अंत में, मैं इस ट्रिक को
jk_

2

मुझे कभी-कभी आपके द्वारा बताई गई समस्या के समान है, और मेरा समाधान है:

Ctrl+ Alt+ F1, एक ही उपयोगकर्ता के रूप में लॉगिन करें और निष्पादित करें:

sudo pkill -9 ^gnome-shell

और साथ वापस लौटने Ctrl+ Alt+F7

अगर यह उचित तरीका है, मुझे नहीं पता। मेरे लिए यह हर काम करता है।


3
यह गनोम-शेल के सभी उपयोगकर्ताओं के उदाहरणों को मार देगा, जो एक बहु-उपयोगकर्ता परिदृश्य में ऐसा कुछ नहीं हो सकता है जो आप करना चाहते हैं। आम तौर पर आपको केवल अपने खुद को मारना होता है (pkill -HUP सूक्ति-शेल)
Steeve McCauley

3
किल -9 थोड़ा विनाशकारी है, मुझे लगता है: robertwe.github.io/2015/03/19/why-you-shoudnt-use-kill--9
रॉबर्ट

महान यह मेरे लिए काम करता है ...! तुम मेरा दिन बचाओ की सराहना की।
नोमानजेव्ड

2

एक्स को पुनरारंभ करें

  • सबसे पहले निम्न कमांड के साथ आपके उबंटू का प्रदर्शन करने वाले प्रबंधक को खोजें:

    cat /etc/X11/default-display-manager
    

    मेरे मामले में यह है /usr/sbin/gdm3

    अंदर से X या OUTSIDE X से

  • विधि 1 से 4 के लिए, यह पता करें कि आप wकमांड का उपयोग करके किस डिस्प्ले का उपयोग कर रहे हैं ।

    w
    

    उदाहरण के लिए इसका उत्तर हो सकता है tty3, (मेरे (ack के) "मेरे प्रदर्शन पर लौटें" कुंजी Ctrl + Alt + F3 है

तरीके

  1. बाहर निकलने के लिए Ctrl + Alt + F1, और एक को वापस लाने के लिए Ctrl + Alt + F3
  2. sudo /etc/init.d/gdm3 restart
  3. systemctl restart gdm.service
  4. sudo service gdm3 restart
  5. dbus-send --type=method_call --print-reply --dest=org.gnome.Shell /org/gnome/Shell org.gnome.Shell.Eval string:'global.reexec_self()'
  6. एक आसान तरीका बस Alt + F2 दबा रहा है, और rफिर Enter दबाएं। यह तब तक काम करेगा जब तक शेल बेकार न हो।

विधि 5 से शब्दशः उठाया है कोर्क के जवाब और से 6 Braiam का जवाब । साहित्यिक चोरी यहाँ के नियमों के खिलाफ नहीं है, लेकिन यह निश्चित रूप से शांत नहीं है। आपको वास्तव में यह करने की आवश्यकता है कि यह काम उद्धरणों में रखकर आपका अपना नहीं है, और स्रोत पोस्ट के लिंक और लेखक के प्रोफाइल पेज के लिंक को शामिल करके एट्रिब्यूशन दें। अधिक जानकारी के लिए, इस ब्लॉग पोस्ट को देखें: Attribution Required
wjandrea

1
  1. टर्मिनल विंडो पर स्विच करने के लिए Ctrl + Alt + F2 दबाएं। कभी-कभी, यह संभव नहीं है।

  2. कीबोर्ड पाने के लिए Alt + SysRq + R दबाएं।

  3. यदि असफल होने से पहले Ctrl + Alt + F2 को दबाया जाता है, तो इसे फिर से आज़माएं।

  4. सभी प्रक्रियाओं को समाप्त करने के लिए Alt + SysRq + E दबाएं।

  5. सभी प्रक्रियाओं को मारने के लिए Alt + SysRq + I दबाएं।

  6. अपने डिस्क को सिंक करने के लिए Alt + SysRq + S दबाएँ।

  7. ठीक है या पूर्ण संदेश के लिए प्रतीक्षा करें। यदि आपको कोई संदेश दिखाई नहीं देता है, तो अपने HDD प्रकाश को देखें कि क्या सिंक ने अंतर बनाया है।

  8. सभी डिस्क ड्राइव को अनमाउंट करने के लिए Alt + SysRq + U दबाएं।

  9. ठीक है या पूर्ण संदेश के लिए प्रतीक्षा करें। यदि आपको 15-30 सेकंड में कोई संदेश दिखाई नहीं देता है, तो मान लें कि डिस्क अनमाउंट की गई है (या कोई अनमाउंट संभव नहीं है) और आगे बढ़ें।

  10. रिबूट करने के लिए Alt + SysRq + B दबाएं।


0

kill -15 gnome-shellमेरे लिए काम नहीं करता है लेकिन kill -9करता है। मुझे लगता है कि ऐसा इसलिए है क्योंकि kill -9एक सेगफॉल्ट को ट्रिगर करता है जो सूक्ति-शेल को फिर से शुरू करने के लिए ट्रिगर kill -15करता है, जबकि ऐसा नहीं करता है।


2
kill -9एक segfault ट्रिगर नहीं करता है। यह SIGKILL को भेजता है, एक अनटचेबल सिग्नल जिसके लिए एकमात्र कार्य तुरंत छोड़ देना है। इसका उपयोग केवल तभी किया जाना चाहिए जब एप्लिकेशन SIGTERM का जवाब न दे, जो कि 15.
muru

pkill -11 gnome-shellएक segfault ट्रिगर होगा, क्योंकि यह सचमुच 11 संकेत क्या करता है। BTW, killएक प्रक्रिया आईडी की जरूरत है, एक प्रक्रिया का नाम नहीं है। क्या आपका मतलब था pkillया killall?
TSJNachos117
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.