यूनिक्स में निलंबित प्रक्रियाएं


1

शुरुआत के यूनिक्स सवाल:

मैं एक यूनिक्स खोल में निलंबित (सीटीआर + जेड) कमांड के उद्देश्य के बारे में थोड़ा भ्रमित हूं। जिस चीज से मैं एक निलंबित प्रक्रिया / आदेश इकट्ठा करता हूं वह न तो पृष्ठभूमि में है और न ही (जाहिर है) अग्रभूमि में है। हालाँकि - और मैं वास्तव में इस बारे में निश्चित नहीं हूं, लेकिन यह मेरा दिन-प्रतिदिन का संकेत है - एक निलंबित प्रक्रिया किसी भी अन्य की तरह समाप्त (या कम से कम 'काम खत्म') के रूप में 'रुकी हुई' नहीं है। यह सिर्फ टर्मिनल पर आउटपुट नहीं करेगा।

तो निलंबित राज्य का विशेष उद्देश्य (या 'यांत्रिकी' यदि आप पसंद करते हैं) क्या है? सिर्फ पृष्ठभूमि और अग्रभूमि ही क्यों?

धन्यवाद

[संपादित करें: मैं अपनी धारणा में गलत था कि "एक निलंबित प्रक्रिया 'रुकी हुई नहीं है' क्योंकि यह किसी अन्य की तरह समाप्त (या कम से कम 'अपना काम खत्म करने') होगी।" स्वीकृत उत्तर देखें।]

जवाबों:


2

आप उपयोग कर एक नौकरी निलंबित कर देते हैं Ctrl+ Zयह रुक जाता है, यानी यह "अपना काम खत्म" नहीं होंगे। आप पृष्ठभूमि में इसे जारी रखने के लिए bg का उपयोग कर सकते हैं (जिसका अर्थ है कि यह अभी भी stdout में लिख सकता है, लेकिन स्टड से नहीं पढ़ सकता है)। मैं हालांकि लगता है कि आप इस तरह से अनदेखी करने के लिए के रूप में में एक कार्यक्रम लिख सकते हैं Ctrl+ Zया किसी अन्य तरीके से इसे संभाल, इस बारे में सुनिश्चित नहीं।

यदि दूसरी ओर आप इसे पृष्ठभूमि में शुरू करना चाहते हैं, तो आप &शेल में कमांड के बाद रख सकते हैं ।

Http://en.wikipedia.org/wiki/Job_control_%28Unix%29 भी देखें


1
यह सही है - मैं अपनी धारणा में गलत था कि "एक निलंबित प्रक्रिया 'रुकी हुई नहीं है' क्योंकि यह किसी अन्य की तरह समाप्त (या कम से कम 'अपना काम खत्म') होगा।" एक निलंबित प्रक्रिया वास्तव में 'रुकी हुई' है जबकि एक पृष्ठभूमि प्रक्रिया सामान्य रूप से निष्पादित होगी।
बीरिल

1

इसका उपयोग एक अन्य प्रक्रिया को मानक इनपुट और आउटपुट पर नियंत्रण मानने के लिए किया जाता है। इसका उपयोग उसी शेल में एक और प्रक्रिया शुरू करने के लिए भी किया जाता है।

उदाहरण के लिए:

एक टेक्स्ट एडिटर चलाते समय जो आप पूरे टर्मिनल को टाइप करते हैं ^ Z संपादक को अस्थायी रूप से बंद करते हैं और कुछ कमांड चलाते हैं (फाइल को बदलें, गाना बदलें, दूसरा इंटरेक्टिव प्रोग्राम शुरू करें)। जब किया जाता है, आप संपादक को फिर से आगे लाकर अपनी फ़ाइल को संपादित करना फिर से शुरू करते हैं।


एक और उपयोगी उदाहरण एक चैट क्लाइंट होगा जो पूरे टर्मिनल को लेता है, कि आप कुछ और करते समय थोड़ी देर के लिए मौन करना चाहते हैं।
урослав Рахматуллин

ठीक है, लेकिन इस तरह की चीज़ के लिए निलंबित राज्य पृष्ठभूमि की स्थिति के लिए बेहतर क्यों है? अगर मेरे पास अग्रभूमि प्रक्रिया को सीधे पृष्ठभूमि में भेजने का कोई तरीका था (पहले 'निलंबित' के बिना) तो मैं ऐसा क्यों नहीं करूंगा? 'पृष्ठभूमि' की तुलना में 'निलंबित' का विशेष मूल्य क्या है?
बिरिल

आपके पास पृष्ठभूमि पर सीधे एक प्रक्रिया भेजने का एक तरीका है: कमांड एम्परसेंड, जैसा कि apt-get install whatnot &। वैकल्पिक रूप से आपके पास nohup programवह अलग है। और वहाँ है disownजो पृष्ठभूमि में आगे पृष्ठभूमि में है कि सब कुछ भेज देंगे। ^ Z उन प्रक्रियाओं के लिए सुविधाजनक है जिन्हें आप निलंबित करना चाहते हैं या टर्मिनल से पूरी तरह से संलग्न करने के बाद भी उन्हें अग्रभूमि में शुरू कर दिया है।
урослав Рахматуллин
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.