Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Bash प्रोग्रामिंग

Linux कमांड को बैकग्राउंड में चलाएं – Ubuntu और SSH के लिए गाइड

यह लेख आपको दिखाएगा कि Linux (Ubuntu सहित) शेल में कमांड को बैकग्राउंड में कैसे चलाया जाए। यह SSH के माध्यम से रिमोट काम करते समय उपयोगी है।

मान लें कि आप SSH के माध्यम से एक रिमोट कंप्यूटर से जुड़े हैं, और आप एक लंबा कार्य निष्पादित करना चाहते हैं।

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

यदि विंडो बंद हो जाती है या कनेक्शन खो जाता है, तो कमांड रिमोट कंप्यूटर पर निष्पादित होना बंद कर सकता है।

कमांड को बैकग्राउंड में चलाकर, इससे बचा जा सकता है – यह चलता रहेगा चाहे कनेक्शन/सत्र खुला रहे या नहीं।

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

& का उपयोग करके कमांड को बैकग्राउंड में चलाएं

Linux में कमांड को बैकग्राउंड में चलाना आसान है – अपने कमांड के अंत में & वर्ण जोड़ें:

your_command_here &

उदाहरण के लिए, निम्न कमांड फ़ाइलों की एक जोड़ी को ज़िप करता है – कमांड बैकग्राउंड में चलता है, इसलिए आपको अन्य कमांड चलाने से पहले इसके पूरा होने की प्रतीक्षा नहीं करनी पड़ती:

zip archive.zip file1 file2 &

आसान! आउटपुट इस तरह दिखेगा:

[1] 3001 

…जो कमांड (इस मामले में [1]) के जॉब और बैकग्राउंड में निष्पादित होने वाले कमांड की प्रोसेस आईडी (इस मामले में 3001) को इंगित करता है।

जब जॉब पूरा हो जाता है (या विफल होता है), तो जॉब की स्थिति आउटपुट होगी:

[1] + done zip archive.zip file1 file2 

बैकग्राउंड जॉब के आउटपुट को छिपाना

कमांड से आउटपुट चलते समय टर्मिनल पर प्रिंट होता रहेगा।

यदि आप इसे छिपाकर रखना चाहते हैं (यानी, यह आपको अन्य कार्य करने में बाधा डाल रहा है) – आप मानक रीडायरेक्शन का उपयोग करके आउटपुट को दबा सकते हैं।

your_command > /dev/null 2>&1 &
  • ऊपर, > कमांड के STDOUT (मानक आउटपुट) को /dev/null पर रीडायरेक्ट कर रहा है।
  • कमांड का STDERROR (मानक त्रुटि आउटपुट) 2>&1 का उपयोग करके STDOUT पर रीडायरेक्ट किया जाता है ताकि STDERR भी /dev/null पर जाए।
  • /dev/null का अर्थ है कि आउटपुट कहीं नहीं जाता। यह चला गया, छिपा हुआ, कुछ भी नहीं में।

चल रहे बैकग्राउंड जॉब सूचीबद्ध करना

वर्तमान में चल रहे बैकग्राउंड जॉब सूचीबद्ध करने के लिए jobs कमांड का उपयोग करें:

jobs -l

यह चल रहे बैकग्राउंड जॉब की एक सूची दिखाएगा – प्रत्येक प्रविष्टि इस तरह दिखेगी:

[1] + 3601 running ping 8.8.8.8 > /dev/null 2>&1 

ऊपर, आप देख सकते हैं कि कमांड ping 8.8.8.8 > /dev/null 2>&1 जॉब आईडी 1 और प्रोसेस आईडी 3601 के साथ बैकग्राउंड में चल रहा है।

बैकग्राउंड जॉब रोकना

kill कमांड एक कार्य को रोकता है:

kill 3601

… इसे बैकग्राउंड जॉब की प्रोसेस आईडी के साथ आपूर्ति करें, और यह इसे रोक देगा (मार देगा)।

बैकग्राउंड जॉब को चालू रखना, भले ही सत्र बाधित हो

यह शायद सबसे उपयोगी भाग है।

कमांड को चलते रहने की अनुमति देने के लिए, भले ही आप विंडो बंद करें, या कनेक्शन गिर जाए, या सत्र अन्यथा बाधित हो, आपको disown कमांड का उपयोग करके बैकग्राउंड जॉब को डिसओन करना होगा।

disown %1

ऊपर, जॉब आईडी 1 वाले बैकग्राउंड जॉब को डिसओन किया जाता है। यह वर्तमान शेल से डिस्कनेक्ट हो जाता है और तब तक चलता रहेगा जब तक यह खत्म नहीं हो जाता या त्रुटि का सामना नहीं करता या KILL कमांड का उपयोग करके मारा नहीं जाता।

सभी चल रही प्रक्रियाओं को सूचीबद्ध करने का तरीका देखने के लिए इस लेख को देखें – यदि आपको आपके द्वारा डिसओन किए गए कार्यों को ट्रैक करने की आवश्यकता है तो आपको इसकी आवश्यकता हो सकती है।

चल रहे कमांड को बैकग्राउंड में ले जाना

चल रहे कमांड को बैकग्राउंड में ले जाने के लिए, आपको इसे सस्पेंड करना होगा, फिर इसे बैकग्राउंड में ले जाना होगा।

ऐसा करने के लिए, कमांड चलते समय, CTRL + Z दबाएं। आप कुछ ऐसा देखेंगे:

suspended command_name 

…पुष्टि करता है कि कमांड सस्पेंड हो गया है।

फिर, कमांड को बैकग्राउंड में चलाना जारी रखने के लिए bg कमांड दर्ज करें:

bg

आप कुछ ऐसा देखेंगे

continued command_name 

…पुष्टि करता है कि कमांड अब बैकग्राउंड में चल रहा है।


  1. Windows 10 पर Run Command को कैसे अक्षम करें? Windows 10 पर Run Command को कैसे अक्षम करें?

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

  1. Linux Watch कमांड में मास्टरी: सिंटैक्स, विकल्प और व्यावहारिक उदाहरण Linux Watch कमांड में मास्टरी: सिंटैक्स, विकल्प और व्यावहारिक उदाहरण

    Linux में watch कमांड एक काम करता है – एक कमांड को दोहराता है और परिणाम को बार-बार आउटपुट करता है, जिससे आप परिवर्तनों को देख सकते हैं। यहाँ इसका उपयोग कैसे करें। watch कमांड सिंटैक्स watch कमांड का सिंटैक्स इस प्रकार है: watch OPTIONS COMMAND ध्यान दें कि: OPTIONS नीचे दी गई तालिका से विकल्पों की

  1. एंड्रॉइड पर यूट्यूब म्यूजिक को बैकग्राउंड में चलाएं - सरल गाइड एंड्रॉइड पर यूट्यूब म्यूजिक को बैकग्राउंड में चलाएं - सरल गाइड

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