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