एंड्रॉयड

लिनक्स nohup कमांड

Process Management Commands (fg, bg, top, ps, kill, nice, renice, df, free) Linux Tutorial

Process Management Commands (fg, bg, top, ps, kill, nice, renice, df, free) Linux Tutorial

विषयसूची:

Anonim

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

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

Nohup कमांड का उपयोग कैसे करें

nohup कमांड का सिंटैक्स इस प्रकार है:

nohup COMMAND

आदेश मानक --help और --version को छोड़कर किसी अन्य विकल्प को स्वीकार नहीं करता है।

आइए निम्नलिखित उदाहरण पर एक नज़र डालें:

nohup mycommand

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

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

यदि आप टर्मिनल से लॉग आउट या बंद करते हैं, तो प्रक्रिया समाप्त नहीं हुई है।

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

अग्रभूमि में nohup का उपयोग करना बहुत उपयोगी नहीं है क्योंकि आप कमांड पूरा होने तक शेल के साथ बातचीत नहीं कर पाएंगे।

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

nohup mycommand &

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

25177

आप कमांड आईडी का उपयोग करके कमांड को अग्रभूमि में लाने के लिए जॉब आईडी का उपयोग कर सकते हैं।

यदि किसी कारण से आप प्रक्रिया को समाप्त करना चाहते हैं, तो प्रक्रिया आईडी के बाद kill कमांड का उपयोग करें:

kill -9 25132

किसी फ़ाइल में आउटपुट पुनर्निर्देशित करना

डिफ़ॉल्ट रूप से, nohup कमांड आउटपुट को nohup.out फ़ाइल में पुनर्निर्देशित करता है। यदि आप आउटपुट को किसी भिन्न फ़ाइल पर पुनर्निर्देशित करना चाहते हैं, तो मानक शेल पुनर्निर्देशन का उपयोग करें।

उदाहरण के लिए, आपके द्वारा उपयोग किए जाने वाले mycommand.out में मानक आउटपुट और मानक त्रुटि को पुनर्निर्देशित करने के लिए:

nohup mycommand > mycommand.out 2>&1 &

मानक आउटपुट और मानक त्रुटि को विभिन्न फ़ाइलों में पुनर्निर्देशित करने के लिए:

nohup mycommand > mycommand.out 2> mycommand.err &

वैकल्पिक

कई वैकल्पिक कार्यक्रम हैं जो आप टर्मिनल को बंद करने या डिस्कनेक्ट होने पर समाप्त करने के लिए कमांड से बचने के लिए उपयोग कर सकते हैं।

स्क्रीन

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

Tmux

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

अस्वीकार करना

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

निष्कर्ष

जब आप लॉग आउट करते हैं या टर्मिनल से बाहर निकलते हैं तो nohup आपको आदेशों को समाप्त होने से रोकने की अनुमति देता है।

नोहप टर्मिनल