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

लिनक्स में बैकग्राउंड में बैश कमांड कैसे चलाएं

लिनक्स में बैकग्राउंड में बैश कमांड कैसे चलाएं

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

कमांड को &के साथ समाप्त करें

अगर आप & . का उपयोग करके किसी कमांड को बैकग्राउंड में पुश करना चाहते हैं अंत में ऐसा करने का एक आसान तरीका है। इस तरह, आप पृष्ठभूमि में एक कमांड जारी कर सकते हैं और अपने टर्मिनल का उपयोग जारी रख सकते हैं क्योंकि यह चलता है। हालांकि यह एक कैच के साथ आता है। & का उपयोग करना आदेश को आपसे दूर नहीं करता है; यह सिर्फ इसे पृष्ठभूमि में धकेलता है। इसका मतलब यह है कि जब आप टर्मिनल का उपयोग करने की कोशिश कर रहे हैं, तो कमांड कुछ भी STDOUT पर पुश करना चाहता है या STDERR अभी भी मुद्रित किया जाएगा, जो विचलित करने वाला हो सकता है।

लिनक्स में बैकग्राउंड में बैश कमांड कैसे चलाएं
COMMAND &

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

लिनक्स में बैकग्राउंड में बैश कमांड कैसे चलाएं
kill %1

& का उपयोग करना अच्छा है अगर आपको किसी चीज़ को थोड़ी देर के लिए टालना पड़े, लेकिन उसके हमेशा के लिए जारी रहने की उम्मीद न करें।

&एक कमांड के बाद, फिर इसे अस्वीकार करें

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

इस पद्धति का उपयोग करने के लिए, एक & adding जोड़कर प्रारंभ करें ।

COMMAND &

जैसा कि ऊपर बताया गया है, & . का उपयोग करके इस आदेश को पृष्ठभूमि में धकेलता है लेकिन इसे आपके उपयोगकर्ता से अलग नहीं करता है। आप jobs . लिखकर इसकी पुष्टि कर सकते हैं टर्मिनल में। यह बैकग्राउंड में चल रहे कमांड को दिखाएगा जैसा कि हमने पहले देखा था।

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

लिनक्स में बैकग्राउंड में बैश कमांड कैसे चलाएं

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

लिनक्स में बैकग्राउंड में बैश कमांड कैसे चलाएं

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

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

लिनक्स में बैकग्राउंड में बैश कमांड कैसे चलाएं
COMMAND &>/dev/null &

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

नोहप, &और /dev/null के साथ

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

nohup COMMAND &>/dev/null &
लिनक्स में बैकग्राउंड में बैश कमांड कैसे चलाएं

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

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

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

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


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

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

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

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

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

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