एंड्रॉयड

पृष्ठभूमि में लिनक्स कमांड कैसे चलाएं

Linux Tutorial for Beginners: Introduction to Linux Operating System

Linux Tutorial for Beginners: Introduction to Linux Operating System

विषयसूची:

Anonim

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

क्या होगा यदि कमांड को समाप्त होने में लंबा समय लगता है, और आप इस बीच अन्य कमांड चलाना चाहते हैं? आपके पास अपने निपटान में कई विकल्प हैं। सबसे स्पष्ट और सीधा विकल्प एक नया शेल सत्र शुरू करना और उसमें कमांड चलाना है। एक अन्य विकल्प पृष्ठभूमि में कमांड चलाना है।

एक पृष्ठभूमि प्रक्रिया एक प्रक्रिया / आदेश है जो एक टर्मिनल से शुरू होती है और उपयोगकर्ता से बातचीत के बिना, पृष्ठभूमि में चलती है।, हम पृष्ठभूमि प्रक्रियाओं के बारे में बात करेंगे लिनक्स। हम आपको दिखाएंगे कि पृष्ठभूमि में कमांड कैसे शुरू करें और शेल सत्र बंद होने के बाद प्रक्रिया को कैसे चालू रखें।

पृष्ठभूमि में एक लिनक्स कमांड चलाएं

पृष्ठभूमि में कमांड चलाने के लिए, कमांड के अंत में एम्परसेंड सिंबल ( & ) जोड़ें:

command &

शेल जॉब आईडी (ब्रैकेट्स से घिरा हुआ) और प्रोसेस आईडी टर्मिनल पर प्रिंट की जाएगी:

25177

आपके पास एक ही समय में पृष्ठभूमि में चलने वाली कई प्रक्रियाएं हो सकती हैं।

पृष्ठभूमि प्रक्रिया उस टर्मिनल को संदेश लिखना जारी रखेगी जिससे आपने कमांड मंगाया था। stdout और stderr संदेशों को दबाने के लिए निम्नलिखित सिंटैक्स का उपयोग करें:

command > /dev/null 2>&1 &

>/dev/null 2>&1 अर्थ है /dev/null stdout को /dev/null और stderr को रीडायरेक्ट करना।

वर्तमान शेल सत्र में सभी रुके और पृष्ठभूमि नौकरियों की स्थिति प्रदर्शित करने के लिए jobs उपयोगिता का उपयोग करें:

jobs -l

आउटपुट में जॉब नंबर, प्रोसेस आईडी, जॉब स्टेट और कमांड की शुरुआत होती है:

+ 25177 Running ping google.com &

अग्रभूमि में पृष्ठभूमि प्रक्रिया लाने के लिए, fg कमांड का उपयोग करें:

fg

fg %1

पृष्ठभूमि प्रक्रिया को समाप्त करने के लिए, प्रक्रिया आईडी के बाद kill कमांड का उपयोग करें:

kill -9 25177

एक अग्रभूमि प्रक्रिया को पृष्ठभूमि में ले जाएं

पृष्ठभूमि में चल रहे अग्रभूमि प्रक्रिया को स्थानांतरित करने के लिए:

  1. Ctrl+Z टाइप करके प्रक्रिया को रोकें। बंद की गई प्रक्रिया को bg लिखकर पृष्ठभूमि पर रखें।

एक शेल निकास के बाद पृष्ठभूमि प्रक्रियाओं को चालू रखें

यदि आपका कनेक्शन ड्रॉप हो जाता है या आप शेल सत्र से बाहर निकल जाते हैं, तो पृष्ठभूमि प्रक्रियाएं समाप्त हो जाती हैं। इंटरैक्टिव शेल सत्र समाप्त होने के बाद प्रक्रिया को चालू रखने के कई तरीके हैं।

एक तरीका यह है कि शेल के बिल कंट्रोल के इस्तेमाल से शेल को जॉब कंट्रोल से हटा दिया जाए:

disown

disown %1

पुष्टि करें कि jobs -l कमांड का उपयोग करके नौकरियों को सक्रिय नौकरियों की तालिका से हटा दिया जाता है। सभी चल रही प्रक्रियाओं को सूचीबद्ध करने के लिए, जिसमें ps aux कमांड का उपयोग किया जाता है।

शेल से बाहर निकलने के बाद एक प्रक्रिया को चालू रखने का दूसरा तरीका है, nohup का उपयोग करना।

nohup कमांड अपने तर्क के रूप में निर्दिष्ट एक अन्य प्रोग्राम को निष्पादित करता है और सभी SIGHUP (हैंगअप) संकेतों को अनदेखा करता है। SIGHUP एक संकेत है जो एक प्रक्रिया को भेजा जाता है जब इसका नियंत्रण टर्मिनल बंद हो जाता है।

nohup कमांड का उपयोग करके पृष्ठभूमि में एक कमांड चलाने के लिए, टाइप करें:

nohup command &

कमांड आउटपुट को nohup.out फ़ाइल पर रीडायरेक्ट किया जाता है।

nohup: ignoring input and appending output to 'nohup.out'

वैकल्पिक

कई कार्यक्रम हैं जो आपको एक ही समय में कई इंटरैक्टिव सत्रों की अनुमति देते हैं।

स्क्रीन

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

Tmux

Tmux GNU स्क्रीन का एक आधुनिक विकल्प है। Tmux के साथ, आप एक सत्र भी बना सकते हैं और उस सत्र के अंदर कई विंडो खोल सकते हैं। Tmux सत्र लगातार होते हैं, जिसका अर्थ है कि Tmux में चलने वाले प्रोग्राम टर्मिनल को बंद करने के बावजूद भी चलते रहते हैं।

निष्कर्ष

पृष्ठभूमि में एक कमांड चलाने के लिए, कमांड के अंत में & को शामिल करें।

जब आप पृष्ठभूमि में एक कमांड चलाते हैं, तो आपको तब तक इंतजार करने की ज़रूरत नहीं है जब तक आप एक दूसरे को निष्पादित करने से पहले पूरा नहीं कर लेते।

nohup fg bg जॉब्स ने टर्मिनल को डिस्चार्ज किया