लिनक्स सिस्टम पर बहुत सारे कमांड उपलब्ध हैं। कुछ ऐसे हैं जिनका आप दिन में कई बार उपयोग करेंगे और अन्य आमतौर पर विशेष उपयोग के मामलों के लिए आरक्षित हैं। nohup
ऐसा ही एक आदेश है। आप इसे हर दिन उपयोग नहीं करेंगे, लेकिन जब आपको इसकी आवश्यकता होगी, तो आप इसके आभारी होंगे। यहां हम आपको दिखाते हैं कि nohup
. क्या है है और इसका उपयोग कैसे करें।
नोहप क्या है?
nohup
"कोई हैंगअप नहीं" के लिए संक्षिप्त है। यह कोई आदेश नहीं है जिसे आप स्वयं चलाते हैं। nohup
एक पूरक कमांड है जो लिनक्स सिस्टम को एक बार शुरू होने के बाद कमांड को बंद नहीं करने के लिए कहता है। इसका मतलब है कि यह तब तक चलता रहेगा जब तक यह पूरा नहीं हो जाता, भले ही इसे शुरू करने वाला उपयोगकर्ता लॉग आउट हो जाए। यह tmux या स्क्रीन के लिए कुछ हद तक समान उद्देश्य प्रदान करता है, जिससे आप एक प्रक्रिया शुरू कर सकते हैं और इस बारे में चिंता न करें कि यदि आप लॉग आउट करते हैं या अपने सर्वर से डिस्कनेक्ट हो जाते हैं तो यह समाप्त हो जाएगा या नहीं। nohup
. के लिए सिंटैक्स सरल है और कुछ इस तरह दिखता है:
nohup sh your-script.sh &
कमांड के अंत में "&" पर ध्यान दें। यह कमांड को पृष्ठभूमि में ले जाता है, जिस टर्मिनल में आप काम कर रहे हैं उसे मुक्त कर देता है।
nohup
लगभग किसी भी कमांड के साथ काम करता है जिसे आप टर्मिनल में चलाते हैं। इसे कस्टम स्क्रिप्ट के साथ-साथ मानक सिस्टम कमांड और कमांड लाइन उपयोगिताओं के साथ चलाया जा सकता है। आप इसका उपयोग रिमोट सर्वर पर सुरक्षा ऑडिटिंग स्क्रिप्ट शुरू करने और डिस्कनेक्ट करने और दूर जाने में सक्षम होने के लिए कर सकते हैं, या यदि आप पृष्ठभूमि में अपडेट चलाना चाहते हैं और उन्हें किसी भी चीज़ के लिए रोकना नहीं चाहते हैं तो आप इसका उपयोग करना चाहेंगे।
Nohup.out
क्योंकि nohup
इसे शुरू करने वाले उपयोगकर्ता से स्वतंत्र रूप से चल सकता है, कमांड को किसी भी संदेश या त्रुटियों को आउटपुट करने के लिए कहीं न कहीं जरूरत होती है। चूंकि इसके साथ जुड़ने के लिए कोई टर्मिनल नहीं है, nohup
सब कुछ एक आउटपुट फ़ाइल में लॉग करता है, nohup.out
।
डिफ़ॉल्ट रूप से, वह फ़ाइल उस निर्देशिका में स्थित होती है जिसमें आपने कमांड शुरू की थी। nohup.out
कुछ हद तक अद्वितीय है क्योंकि इसमें मानक आउटपुट और त्रुटि आउटपुट दोनों एक साथ होते हैं। nohup
डिफ़ॉल्ट रूप से दोनों को एक ही फाइल पर रीडायरेक्ट करता है।
जरूरी नहीं कि आपको nohup.out
. का उपयोग करना पड़े , हालांकि - यह सिर्फ डिफ़ॉल्ट है। जब आप nohup
run चलाते हैं तो आप एक कस्टम आउटपुट निर्दिष्ट कर सकते हैं और इसे एक कस्टम स्थान पर रखें।
nohup sh your-script.sh > /path/to/custom.out &
कस्टम आउटपुट में बिल्कुल वही डेटा होता है जो मानक nohup.out
. होता है फ़ाइल होगी। यह सुरक्षा ऑडिट स्क्रिप्ट के लिए अच्छा है जिसका मैंने ऊपर उल्लेख किया है। आप इसे audit-script-output.txt
नाम दे सकते हैं किसी प्रकार के माउंटेड रिमोट फोल्डर में और cat
को देखने के बजाय अपने स्वयं के लैपटॉप के आराम से उस सर्वर की सुरक्षा मुद्रा को देखें पूरे दिन आउटपुट।
नोहप डेमॉन से कैसे अलग है?
अब तक, आप शायद सोच रहे होंगे कि nohup
. क्या सेट करता है? एक डिमोनाइज्ड प्रक्रिया के अलावा। आखिरकार, वे दोनों अपेक्षाकृत एक ही उद्देश्य की पूर्ति करते प्रतीत होते हैं लेकिन वास्तव में ऐसा नहीं करते हैं।
डेमॉन लगातार बैकग्राउंड में चलते हैं। वे उन प्रक्रियाओं के लिए सर्वश्रेष्ठ आरक्षित हैं जिन्हें आप सर्वर की तरह कभी भी बाहर नहीं करना चाहते हैं। उन्हें प्रोग्राम करने के लिए भी अधिक काम की आवश्यकता होती है, इसलिए वे साधारण एकबारगी स्क्रिप्ट के लिए सर्वश्रेष्ठ नहीं हैं।
nohup
एकल उपयोग के लिए है। एक ऐसी स्क्रिप्ट के बारे में सोचें जिसे चलने में लंबा समय लगेगा लेकिन फिर भी अंत में खत्म हो जाएगी। हो सकता है कि कोई लंबा और जटिल कार्य हो जिसे आप समय-समय पर चलाते हैं और उसे पूरा करने में घंटों लग जाते हैं। आप किसी टर्मिनल को खुला नहीं छोड़ना चाहते या उपयोगकर्ता ने लॉग इन किया है, इसलिए आप nohup
का उपयोग करें इसे पृष्ठभूमि में चालू रखने के लिए और जो भी फ़ाइल आप चुनते हैं उसमें सभी आउटपुट डालें, चाहे डिफ़ॉल्ट nohup.out
या आपका चुना हुआ स्थान।
अगर आपको nohup
. पर यह राइटअप अच्छा लगा हो तो , इसके लाभ, और इसके उपयोग, सुनिश्चित करें कि आपने हमारी कुछ अन्य Linux सामग्री की जाँच की है, जैसे फ़ाइल अनुमतियों की हमारी व्याख्या या धीमी Linux मशीन को गति देना।