"बाधित नींद" राज्य क्या इंगित करता है?


18

मेरे पास फ़ायरफ़ॉक्स एक पार्टिक मैजिक लाइवसीडी पर चल रहा था, तब (संभवतः) एक महत्वपूर्ण संयोजन के परिणामस्वरूप मुझे याद नहीं है, यह जल्दी से स्क्रीन और टास्क बार / विंडो सूची से गायब हो गया।

तथापि:

  1. ps ax | grep firefoxनीचे (और अनावश्यक grep firefoxलाइन) देता है। दोनों psऔर GUI टास्क मैनेजर, प्रतीत होता है कि अपरिवर्तित RSS, VM-SIZE और 0% CPU उपयोग के साथ फ़ायरफ़ॉक्स दिखाते हैं।

    जॉन्डे 1916 36.6 14.0 923772 504372 tty1 Sl 13:30 12:15 फ़ायरफ़ॉक्स


  2. pstree | grep firefox रिटर्न:

    init─┬─2 * [ROX-Filer───firefox───25 * [{फ़ायरफ़ॉक्स}]]


  3. strace -p 1916 रिटर्न, और प्रतीत होता है इस लाइन पर हमेशा के लिए रहता है:

    futex(0xac975608), FUTEX_WAIT_PRIVATE, 1, NULL

मैं एक उत्तर से समझता हूं कि ps में STAT स्तंभ मान क्या है? वह S(इन Sl) इंगित करता है कि प्रक्रिया एक interruptible sleepस्थिति में है।

क्या कोई बता सकता है कि राज्य क्या है, और अधिक विस्तार से?

संपादित करें

मूल 2 प्रश्न को संबोधित करने के लिए मैं अपने डिस्ट्रो पर अधिक बारीकियों के साथ एक नया प्रश्न शुरू करूंगा।


@ ब्रायम - हो गया। मैं इसे करने के लिए अनिच्छुक था, जैसा कि मैंने पहली बार किया था, किसी तरह मदद समस्या से दूर हो गई, इस विश्वास पर आधारित चर्चा में कि मैं पार्टेड मैजिक का उपयोग अपने पूर्णकालिक डिस्ट्रो के रूप में कर रहा था। मुझे पूरी उम्मीद है कि इस बार ऐसा नहीं होगा :(
user66001

जवाबों:


18

@msw ने आपके 2nd Q, और आपके कुछ 1 को समझाते हुए एक अच्छा काम किया:

बी) नियंत्रण के किसी भी रूप को प्राप्त करने के लिए किसी भी अपेक्षाकृत-आसान तरीके का सुझाव दें, (बहुत कम से कम) उन टैब को सहेजें जिन्हें मैंने निजी तौर पर ब्राउजिंग मोड में खोला था?

तो मैं कोशिश करूँगा और अपने 1 क्यू को थोड़ा और संबोधित करूंगा:

क) राज्य क्या है, इसके बारे में विस्तार से बताएं?

राज्य मान Sl(यह एक लोअरकेस एल):

   S    Interruptible sleep (waiting for an event to complete)
   l    is multi-threaded (using CLONE_THREAD, like NPTL pthreads do)

                 प्रक्रिया का जीवनचक्र

PROCESS STATE CODES
   R  running or runnable (on run queue)
   D  uninterruptible sleep (usually IO)
   S  interruptible sleep (waiting for an event to complete)
   Z  defunct/zombie, terminated but not reaped by its parent
   T  stopped, either by a job control signal or because
      it is being traced
   [...]

आगे के विवरण को सिग्नल मैन पेज में man 7 signalऔर साथ ही इस ट्यूटोरियल में देखा जा सकता है , जिसका शीर्षक है: लिनक्स प्रोसेस स्टेट्स


आंतरिक कामकाज को समझने के लिए बहुत (!) मददगार। धन्यवाद! +1
user66001

@ user66001 उत्तर स्वीकार करें। यह मुझे धन्यवाद देने में भी मदद करता है।
muneeb_ahmed

8

आपने फ़ायरफ़ॉक्स प्रक्रिया के लिए कुछ भी नहीं किया। यह पहले से ही राज्य एस में था। "इंटरप्टिबल स्लीप" प्रभावी रूप से निष्क्रिय का मतलब है। प्रक्रिया प्रतीक्षा कर रही है, और जब यह एक इनपुट प्राप्त करेगा तो जाग जाएगी। यह एक प्रक्रिया की सामान्य स्थिति है जब तक कि आप इसे व्यस्त रहते हुए पकड़ नहीं लेते।

आपने खिड़की को गायब कर दिया है। हो सकता है कि आपने इसे किसी दूसरे डेस्कटॉप पर भेजा हो। इसे कैसे वापस लाया जाए "सामान्य" तरीका पूरी तरह से आपके विंडो मैनेजर पर निर्भर करता है, जिसे आपने निर्दिष्ट नहीं किया था।

आप अन्य उपकरणों के साथ खिड़की को पुनः प्राप्त करने में सक्षम हो सकते हैं लेकिन यह कुछ हद तक इस बात पर निर्भर करता है कि वास्तव में क्या हुआ है और क्या आपका विंडो प्रबंधक सहयोग करता है। Wmctrl आज़माएं । पहले फ़ायरफ़ॉक्स खिड़कियों के साथ सूची wmctrl -l | grep Firefox। पहले कॉलम में विंडो आईडी पर ध्यान दें, 0x12345678 कहें। वर्तमान डेस्कटॉप पर एक विंडो वापस लाने के लिए, उपयोग करें wmctrl -R 0x12345678; वैकल्पिक रूप से, wmctrl -a 0x12345678इसका डेस्कटॉप पर स्विच करने के लिए उपयोग करें। इसे अधिकतम करने के लिए (जो स्क्रीन के बाहर खिड़कियों की देखभाल करता है या एकल पिक्सेल में सिकुड़ जाता है), चलाएं wmctrl -r 0x12345678 -b add,maximized_vert,maximized_horz। वैकल्पिक रूप से, विंडो के साथ आगे बढ़ें और आकार बदलें wmctrl -r 0x12345678 -e 1,50,100,1000,800। आप बन्द करते की जरूरत है या के साथ खिड़की को सामने लाने के कर सकते हैं wmctrl -r 0x12345678 -b remove,shadedया wmctrl -r 0x12345678 -b remove,hidden


धन्यवाद गिल्स - यह असामान्य लग सकता है, लेकिन मुझे यकीन नहीं है कि मैं कौन सा विंडो मैनेजर चला रहा हूं। क्या यह LXDE (LXPanel बॉक्स के बारे में सूचीबद्ध) हो सकता है? इसके अलावा, wmctrl मेरे डिस्ट्रो पर उपलब्ध नहीं है - कृपया मेरी अज्ञानता को क्षमा करें, लेकिन क्या wmctrl को केवल डाउनलोड और चलाया जा सकता है, या इसे इंस्टॉल किया जाना चाहिए (निर्भरताएं, आदि)?
user66001

@ user66001 LXDE एक डेस्कटॉप वातावरण है। इसका डिफ़ॉल्ट विंडो मैनेजर ओपनबॉक्स है (मुझे यकीन नहीं है कि यह एक अलग का समर्थन करता है)। यदि आपके वितरण में wmctrl नहीं है, तो आप स्रोत को डाउनलोड करने और उसे संकलित करने का प्रयास कर सकते हैं। यह कुछ पुस्तकालयों पर निर्भर करता है, लेकिन उनमें से कोई भी विदेशी नहीं है, वे सभी आपके वितरण द्वारा प्रदान किए जाने चाहिए। यदि आपके पास है xdotool, तो यह इन सभी को करने में सक्षम हो सकता है, या कम से कम एक है जो उपयोगी है, इसलिए इसे आज़माएं (विंडो कमांड और मैनुअल में डेस्कटॉप और विंडो कमांड देखें)।
गिल्स एसओ- बुराई को रोकना '

आह, धन्यवाद। xdotoolया तो नहीं - जब आप इसका मतलब "इन सभी को करने में सक्षम हो सकते हैं", तो क्या आप संकलन के बारे में बात कर रहे हैं wmctrl, या संचालन जो आप इसके साथ प्रदर्शन कर सकते हैं? क्या आप मुझे लिनक्स स्रोतों (विंडोज के वातावरण से लिनक्स पर नए) को संकलित करने के लिए किसी अनुशंसित गाइड की ओर संकेत कर सकते हैं?
user66001

@ user66001 मेरा मतलब था कि xdotoolऔर wmctrlइसमें समान कार्यक्षमता है (जहाँ तक आपको यहाँ की आवश्यकता है, वे उस चीज़ में भिन्न हैं जो वे प्रदान करते हैं)। यदि आप लिनक्स में नए हैं, तो मैं अधिक पैकेज के साथ वितरण की सलाह देता हूं। यदि आप RHEL या वैरिएंट जैसे कि CentOS या वैज्ञानिक लिनक्स चला रहे हैं, तो Repoforge पर एक पैकेज है । यदि आप स्रोत से निर्माण करना चाहते हैं, तो इसे पढ़ें - लेकिन यदि आप एक पा सकते हैं तो पैकेज को स्थापित करना आसान होगा।
गिल्स एसओ- बुराई को रोकें '

किस उपकरण के निर्माण में कोई अंतर आसान होना चाहिए? इसके अलावा, यदि किसी के पास उनके डिस्ट्रो में पैकेज मैनेजर नहीं है, तो किस प्रकार का पैकेज है? क्या मुझे तलाश करनी चाहिए (मुझे लगता है कि यह एक अतार्किक प्रश्न है, लेकिन सिर्फ एक मामले में मैं गलत मान रहा हूं कि पैकेज केवल बायनेरिज़ का एक बंडल है, निर्भरता सूचीबद्ध और कॉन्फ़िगर परिवर्तन के साथ, सोचा था कि मैं पूछूंगा)?
user66001 3

2

एक्स क्लाइंट के लिए अपना कनेक्शन खोना संभव है और किसी तरह इसे अधिसूचित नहीं किया जा सकता है। प्रक्रिया अक्सर सॉकेट पर इंतजार करेगी जिसके पार कुछ भी कभी नहीं आएगा, इसे एक निर्बाध नींद में छोड़ देगा।

केवल फ़ायरफ़ॉक्स के लिए (और Gvim या Chrome जैसे कुछ अन्य प्रोग्राम जो विफलता में राज्य के भंडारण के लिए विशेष प्रावधान करते हैं) एक सरल:

$ kill -TERM pid

इस प्रक्रिया को खुले टैब की सूची को बचाने का मौका देगा, लेकिन मैं फॉर्म कंटेंट या अन्य राज्य को नहीं रखा जा सकता।


बल्कि यह संभावना नहीं है कि एक स्थानीय एक्स क्लाइंट एक्स सर्वर के साथ कनेक्शन खो देगा, खासकर एक कुंजी दबाने के परिणामस्वरूप। फ़ायरफ़ॉक्स को मारने से निजी ब्राउज़िंग मोड में विंडोज़ के बारे में जानकारी नहीं बचती।
गिल्स एसओ- बुराई को रोकना '

मैं लाजर का उपयोग करता हूं , और जब मैं अपने सभी जीमेल खातों से लॉग आउट किए बिना, टैब से सटे हुए वेबसाइटों से जानकारी का उपयोग कर दस्तावेजों को देखने / संपादित करने के लिए gdocs खोलने के लिए अपने प्राथमिक जीमेल खाते के चारों ओर कोशिश करने और स्विच करने के लिए निजी ब्राउज़िंग मोड का उपयोग नहीं करता हूं। - Grr, Google) के पास FF "पिछली बार से मेरी खिड़कियां और टैब याद रखें", इसलिए मैं केवल निजी ब्राउज़िंग मोड में खुले टैब की परवाह करता हूं। इसलिए, जबकि उपरोक्त तर्क को जानना अच्छा है kill, मुझे संदेह है कि एफएफ इस स्थिति में मेरे टैब को बचाएगा। एफएफ के लिए एक्स के लिए रिटेट करने का कोई तरीका?
user66001

"एफएफ के लिए एक्स के लिए रिटेट करने का कोई तरीका?" क्योंकि मैं कभी यह पता लगाने में सक्षम नहीं हो पाया हूं कि क्लाइंट प्रक्रिया को सिग्नल मिलने के बिना विंडो को कैसे अनमैप / नष्ट किया जा सकता है, मेरा मानना ​​है कि FF प्रोग्राम से UI तक सॉकेट खुला रहता है। जब तक एक प्रक्रिया एक सॉकेट से जुड़ी होती है, मुझे कोई रास्ता नहीं पता है कि कोई भी प्रक्रिया उस पर टैप कर सकती है। (अब जब आपने मुझे इसके बारे में सोचने का कारण बनाया है, तो मुझे संदेह है कि यह एक्स सर्वर और क्लाइंट के बीच एक प्रोटोकॉल त्रुटि के कारण आता है, जो कि मुश्किल है (यानी मैं कभी भी कोशिश नहीं करूंगा) डिबग करने के लिए।
msw
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.