मेरा टर्मिनल क्यों जम रहा है?


11

कभी-कभी जब मेरा टर्मिनल जम जाता है और यह मुझे टाइप नहीं करने देगा। मैं किसी भी कारण की पहचान नहीं कर सकता, न ही निदान कैसे कर सकता हूं। कोई सुझाव?

धन्यवाद!

Ubuntu 10.04 पर GNOME टर्मिनल 2.30.2


2
आमतौर पर जब टर्मिनल फ्रीज होता है, तो यह बहुत सारे संसाधनों का उपयोग करते हुए पृष्ठभूमि में एक अन्य एप्लिकेशन के कारण होता है, जैसे सीपीयू या डिस्क आई / ओ। यदि आप topकिसी टर्मिनल में चलते हैं , तो आपको समस्या का आसानी से पता लगाने में सक्षम होना चाहिए।
RolandiXor

@roland - एक पकड़ -22 की तरह लगता है, लेकिन कभी-कभी अच्छी सलाह जब एक टर्मिनल जमी है तो मैं दूसरा खोल सकता हूं और यह काम करेगा।
डेविड लेबॉउर

मुझे सही पता है? :) यह एक पकड़ -22 का एक सा है, लेकिन यह अक्सर मेरे लिए काम करता है।
RolandiXor

जवाबों:


14

रहस्यमय हैंग के निदान का एक अच्छा सामान्य तरीका:

  1. एक (नोटेर) टर्मिनल खोलें, और ps axo pid,wchan:32,cmdदूसरी प्रक्रिया आईडी खोजने के लिए उपयोग करें
  2. wchanस्तंभ पर ध्यान दें , जो आपको बताए कि क्या यह कर्नेल में फंस गया है
  3. चलाने sudo strace -p PIDउस प्रक्रिया का पीआईडी डालने; बग रिपोर्ट या प्रश्न में पेस्ट करें

यदि wchan कॉलम में सिर्फ एक डैश से कुछ अलग है, तो प्रक्रिया कर्नेल में कुछ कर रही है। कुछ विशिष्ट मूल्य:

  • futex_wait_queue_me - उसी प्रक्रिया में एक और धागे के लिए एक फूटेक्स पर इंतजार करना
  • poll_schedule_timeout - नेटवर्क या इंटरप्रोसेस संचार की प्रतीक्षा कर रहा है, या बस थोड़ी देर के लिए सो रहा है
  • pipe_wait - एक पाइप पढ़ना / लिखना

हजारों संभावनाएं हैं इसलिए मैं उन सभी को सूचीबद्ध नहीं कर सकता। देखें कि एक प्रक्रिया का "प्रतीक्षा चैनल" क्या है? अधिक जानकारी के लिए।


सामान्य प्रयोजन बग ट्रैकिंग के लिए बहुत उपयोगी है। क्या आप कुछ व्यापक विवरण के साथ अपने उत्तर को अपडेट कर सकते हैं? Wchan कॉलम में क्या संदेश कर्नेल में अटक जाने वाले प्रोग्राम को इंगित करता है?
सालिह एमिन

धन्यवाद, सालिह। हो सकता है कि हम एक और सवाल करें कि सामान्य तौर पर हैंग का निदान कैसे किया जाता है?
poolie

यदि लोगों को किसी अन्य वैश्या मूल्यों के बारे में उत्सुक हैं, तो कृपया एक टिप्पणी जोड़ें।
पूलि

किसी भी wchanतरह से प्रक्रिया कर्नेल में प्रतीक्षा कर रही है। यदि यह लंबे समय तक रहता है और बिना किसी अच्छे कारण के जैसे नेटवर्क io के लिए सुन रहा है, तो यह अटक गया है। ;)
पूली

25

क्या आपने किसी भी तरह से Ctrl + S दबाया? यह टर्मिनल पॉज कुंजी है जो तब तक सभी आउटपुट को रोकती है जब तक आप फिर से शुरू करने के लिए Ctrl-Q दबाते हैं।

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