Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रणाली >> Linux

Linux में Bash कमांड को बैकग्राउंड में कैसे चलाएं

Linux में Bash कमांड को बैकग्राउंड में कैसे चलाएं

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

कमांड के अंत में & जोड़ें

यदि आप किसी कमांड को बैकग्राउंड में धकेलना चाहते हैं, तो अंत में & का उपयोग करना एक आसान तरीका है। इस तरह, आप बैकग्राउंड में एक कमांड जारी कर सकते हैं और जैसे ही यह चलता है अपने टर्मिनल का उपयोग जारी रख सकते हैं। इसमें एक पकड़ है, हालांकि। & का उपयोग कमांड को आपसे डिस्कनेक्ट नहीं करता; यह सिर्फ इसे बैकग्राउंड में धकेलता है। इसका मतलब है कि जब आप टर्मिनल का उपयोग करने का प्रयास कर रहे हों, तो कमांड जो भी STDOUT या STDERR पर प्रिंट करना चाहता है, वह अभी भी प्रिंट होगा, जो ध्यान भटका सकता है।

Linux में Bash कमांड को बैकग्राउंड में कैसे चलाएं
COMMAND &

जब टर्मिनल सत्र बंद होता है, तो कमांड समाप्त हो जाता है। आप jobs कमांड जारी करके, चल रहे कमांड की संख्या ढूंढकर, और kill कमांड से इसे मारकर भी कमांड को मार सकते हैं। वह सिंटैक्स इस प्रकार है:

Linux में Bash कमांड को बैकग्राउंड में कैसे चलाएं
kill %1

यदि आपको कुछ समय के लिए कुछ धकेलने की आवश्यकता है लेकिन आप इसे हमेशा के लिए जारी रहने की उम्मीद नहीं करते हैं तो & का उपयोग करना अच्छा है।

कमांड के बाद &, फिर इसे डिसओन करें

सिर्फ & के साथ कमांड चलाने से यह पीछे धकेलता है और इसे तब तक चलाता रहता है जब तक टर्मिनल विंडो खुली है। यदि, हालांकि, आप इसे लगातार चलते रखना चाहते हैं, यहां तक कि आपके टर्मिनल सत्र के समाप्त होने के बाद भी, तो आप disown कमांड का उपयोग कर सकते हैं।

इस विधि का उपयोग करने के लिए, एक & जोड़कर शुरू करें।

COMMAND &

जैसा कि ऊपर उल्लेख किया गया है, & का उपयोग इस कमांड को बैकग्राउंड में धकेलता है लेकिन इसे आपके उपयोगकर्ता से डिटैच नहीं करता। आप टर्मिनल में jobs टाइप करके इसे सत्यापित कर सकते हैं। यह पहले की तरह बैकग्राउंड में चल रहे कमांड को दिखाएगा।

बस शेल में disown टाइप करें, और यह वही करेगा। (और आप एक बार फिर jobs कमांड से इसे सत्यापित कर सकते हैं।)

Linux में Bash कमांड को बैकग्राउंड में कैसे चलाएं

अब आप अपना टर्मिनल बंद कर सकते हैं और अपने दिन के काम जारी रख सकते हैं। यह अभी भी STDOUT या STDERR पर चीजों को पाइप करता रहेगा, लेकिन एक बार जब आप बाहर निकलते हैं और अपना टर्मिनल फिर से खोलते हैं, तो आप वहां कुछ भी नहीं देखेंगे। आप top या ps कमांड से फिर से कमांड ढूंढ सकते हैं और kill कमांड से इसे मार सकते हैं।

Linux में Bash कमांड को बैकग्राउंड में कैसे चलाएं

कमांड के बाद & /dev/null के साथ

कमांड के बाद & जोड़ने से कमांड बैकग्राउंड में चला जाएगा, लेकिन परिणामस्वरूप, बैकग्राउंड कमांड आपके इसका उपयोग करते समय टर्मिनल में संदेश प्रिंट करना जारी रखेगा। यदि आप इसे रोकना चाहते हैं, तो कमांड को /dev/null पर रीडायरेक्ट करने पर विचार करें।

Linux में Bash कमांड को बैकग्राउंड में कैसे चलाएं
COMMAND &>/dev/null &

यह टर्मिनल बंद होने पर कमांड को बंद होने से नहीं रोकता। हालांकि, जैसा कि ऊपर उल्लेख किया गया है, चल रहे कमांड को उपयोगकर्ता से डिसओन करने के लिए disown का उपयोग करना संभव है। यदि आप नहीं चाहते कि यह अब और चले तो आप ऊपर बताए गए किसी भी तरीके से इसे मार सकते हैं।

Nohup, & और /dev/null के साथ

पिछले कमांड के विपरीत, nohup का उपयोग आपको कमांड को बैकग्राउंड में चलाने और इसे चालू रखने की अनुमति देता है। कैसे? nohup HUP सिग्नल (सिग्नल हैंग अप) को बायपास करता है, जिससे टर्मिनल बंद होने पर भी कमांड को बैकग्राउंड में चलाना संभव हो जाता है। इस कमांड को रीडायरेक्शन के साथ "/dev/null" (ताकि nohup nohup.out फ़ाइल न बनाए) के साथ संयोजित करें, और सब कुछ एक कमांड के साथ बैकग्राउंड में चला जाता है।

nohup COMMAND &>/dev/null &
Linux में Bash कमांड को बैकग्राउंड में कैसे चलाएं

आज Linux पर अधिकांश टर्मिनल प्रोग्राम में उन्हें कम प्रयास के साथ बैकग्राउंड में चलाने के लिए बिल्ट-इन सुविधाएं हैं। इसके साथ, आधुनिक इनिट सिस्टम (जैसे systemd) उपयोगकर्ताओं को बूट पर या जब भी सेवाओं की तरह प्रोग्राम शुरू करने की अनुमति दे सकते हैं।

फिर भी, Linux पर कुछ प्रोग्राम डेमॉन के रूप में चलने या आधुनिक इनिट सिस्टम के साथ इंटीग्रेट करने की क्षमता की कमी रखते हैं। यह एक वास्तविक असुविधा है लेकिन समझ में आता है, क्योंकि सभी डेवलपर्स के पास नई सुविधाएं जोड़ने का कौशल या समय नहीं होता।

सौभाग्य से, nohup या disown जैसे कमांड अभी भी वास्तविकता हैं और इस तरह के प्रोग्राम को बैकग्राउंड में ले जाने में अंतर को भर सकते हैं। वे परफेक्ट या फैंसी नहीं हैं, लेकिन जब जरूरत होती है तो काम पूरा कर देते हैं।

यदि आपको यह Linux लेख पसंद आया, तो हमारी अन्य Linux सामग्री देखना सुनिश्चित करें, जैसे Google अकाउंट को GNOME Shell से कैसे कनेक्ट करें, Windows उपयोगकर्ताओं के लिए सर्वश्रेष्ठ Linux डिस्ट्रोस, और LS कमांड जो आपको जानने की जरूरत है।


  1. लिनक्स टर्मिनल को कैलकुलेटर के रूप में कैसे उपयोग करें लिनक्स टर्मिनल को कैलकुलेटर के रूप में कैसे उपयोग करें

    क्या आप फैंसी GUI पर लिनक्स टर्मिनल की सादगी पसंद करते हैं? यदि आपको जल्दी से कुछ गणित करने की आवश्यकता है, तो आपको कैलकुलेटर ऐप का उपयोग करने की आवश्यकता नहीं है। आप उन टूल का उपयोग करके टर्मिनल का उपयोग करके अपनी गणना कर सकते हैं जो शायद आपके पास पहले से इंस्टॉल हैं। आइए देखें कि आप लिनक्स टर्मिनल

  1. लिनक्स में tee कमांड का उपयोग कैसे करें लिनक्स में tee कमांड का उपयोग कैसे करें

    यदि आप कभी अपने लिनक्स शेल के तहत पाइप और रीडायरेक्शन का उपयोग करते हैं, तो संभावना है कि आपको कभी-कभी tee यूटिलिटी का उपयोग करने की भी आवश्यकता होगी। tee क्या करता है? ls जैसी कमांड आपके वर्तमान डायरेक्टरी की सामग्री प्रदर्शित करेगी। दूसरे शब्दों में, यह इन सामग्री को stdout (स्टैंडर्ड आउटपुट) पर प

  1. Linux में  at  यूटिलिटी से कमांड शेड्यूल कैसे करें Linux में "at" यूटिलिटी से कमांड शेड्यूल कैसे करें

    पहली बार जब मैंने एक व्यस्त सर्वर का प्रबंधन किया, तो मुझे लोगों द्वारा इसका उपयोग न करने पर इसे रीबूट करने के लिए एक उपयुक्त समय की प्रतीक्षा करनी पड़ी। मैंने देखा कि यह सुबह 3 बजे के आसपास होता है। फिर, मैंने खुद से सोचा: यह असुविधाजनक है, मुझे सिर्फ अपना सर्वर रीबूट करने के लिए एक अनुचित घंटे पर