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