Computer >> कंप्यूटर ट्यूटोरियल >  >> स्मार्टफोन्स >> Linux

Linux में nohup का उपयोग करके प्रोसेस को बैकग्राउंड में कैसे चलाएं

यह गाइड आपको दिखाएगी कि 'nohup' कमांड का उपयोग करके प्रोसेस को बैकग्राउंड में कैसे चलाएं, ताकि वे लॉग आउट होने या डिस्कनेक्ट होने पर भी चलते रहें।

मैं रिमोट सर्वर पर बहुत काम करता हूं। मैं अपने सर्वर से कनेक्ट करने के लिए SSH का उपयोग करता हूं। अक्सर मैं एक प्रोसेस चलाता हूं जिसे मुझे अपने SSH कनेक्शन को बंद करने के बाद भी चलते रहने की आवश्यकता होती है। यह एक शेल स्क्रिप्ट हो सकती है जो मेरी लॉग फ़ाइलों को पार्स करती है या बहुत बड़े mysql डेटाबेस की बहाली। तभी मैं Linux कमांड लाइन यूटिलिटी "nohup" की ओर रुख करता हूं। "Nohup" "no hangup" का संक्षिप्त रूप है, जिसका अर्थ है "हैंग अप सिग्नल को अनदेखा करें"। "हैंग अप" सिग्नल वह है जो तब होता है जब आप लॉग आउट करते हैं। "nohup" जो करता है वह यह है कि यह आपको अपने सर्वर में लॉग इन करने, एक प्रोसेस लॉन्च करने और लॉग आउट करने की अनुमति देता है। प्रोसेस आपके लॉग आउट करने के बाद भी चलती रहती है। जब आप फिर से लॉग इन करते हैं तो आप उस प्रोसेस को फिर से एक्सेस कर सकते हैं, बशर्ते यह अभी भी चल रही हो।

"nohup" का बुनियादी सिंटैक्स है:

# nohup [command] &

[command] को अपने शेल स्क्रिप्ट के नाम, या कमांड से बदलें। अंत में "&" कमांड या स्क्रिप्ट को बैकग्राउंड प्रोसेस के रूप में चलाता है। यहां एक उदाहरण है कि आप अपने रिमोट सर्वर पर बड़े mysql डेटाबेस का बैकअप लेने के लिए "nohup" का उपयोग कैसे करेंगे। पहले, मैं SSH का उपयोग करके अपने रिमोट सर्वर में लॉग इन करता हूं:

# ssh calvin@sevenacross.com

फिर मैं कमांड "mysqldump -ucalvin -phobbes largedatabase > largedatabase.db" को "nohup" मोड में कमांड से पहले "nohup" और बाद में "&" जोड़कर निष्पादित करता हूं:

# nohup mysqldump -ucalvin -phobbes largedatabase > largedatabase.db &
[1] 3999
# nohup: appending output to `nohup.out'

आउटपुट की दो लाइनें हैं जो आपको मिलती हैं। पहली लाइन में "3999" वह प्रोसेस ID है जो मैंने अभी स्पॉन की है, जबकि "nohup: appending output to `nohup.out'" का अर्थ है कि आउटपुट जो आमतौर पर टर्मिनल पर आता है उसे उस डायरेक्टरी में "nohup.out" नामक फ़ाइल में फॉरवर्ड किया जा रहा है जहां से आपने कमांड लॉन्च की थी। आप प्रोसेस ID का उपयोग करके सभी चल रही प्रोसेस के माध्यम से खोज करके जांच सकते हैं कि प्रोसेस अभी भी चल रही है या नहीं:

# ps -ef | grep 3999
calvin 3999 29848 0 18:42 ? 00:00:00 /usr/bin/mysqldump
calvin 6575 31852 0 18:44 pts/2 00:00:00 grep 3999

जब प्रोसेस चलना समाप्त हो जाती है तो आपको कमांड लाइन में ऐसा आउटपुट दिखाई देगा:

[1]+ Done nohup mysqldump -ucalvin -phobbes largedatabase > largedatabase.db

किसी भी त्रुटि या अन्य संदेश के लिए फ़ाइल "nohup.out" की जांच कर सकते हैं जो प्रोसेस चलने के दौरान आउटपुट हुए थे। यदि फ़ाइल खाली रहती है तो यह ठीक है। इसका मतलब है कि प्रोसेस चलने के दौरान कोई संदेश आउटपुट नहीं हुए थे।

अब जब आप जानते हैं कि प्रोसेस को बैकग्राउंड में कैसे चलाना है, तो क्यों न कुछ अन्य linux टिप्स और ट्रिक्स सीखें?

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

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

  1. Linux में प्रक्रियाओं को मारने के प्रभावी तरीके – चरण-दर-चरण गाइड Linux में प्रक्रियाओं को मारने के प्रभावी तरीके – चरण-दर-चरण गाइड

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

  1. WSL के साथ Windows 10/11 पर Linux ऐप्स चलाएं - त्वरित और आसान गाइड WSL के साथ Windows 10/11 पर Linux ऐप्स चलाएं - त्वरित और आसान गाइड

    मैं अपने OS क्लास के लिए Windows Subsystem for Linux (WSL) का उपयोग काफी समय से कर रहा हूं। और मुझे यह पसंद है कि मैं वर्चुअल मशीन इंस्टॉल करने या डुअल बूटिंग की अतिरिक्त जटिलता के बिना Windows में Linux कमांड का सीधे तरीके से उपयोग कर सकता हूं। इस लेख के अंत तक, आप Windows से सीधे Linux कमांड चलाने