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

लिनक्स में नोहप का उपयोग करके पृष्ठभूमि में प्रक्रियाओं को कैसे चलाएं

यह मार्गदर्शिका आपको दिखाएगी कि पृष्ठभूमि में प्रक्रियाओं को चलाने के लिए 'नोहप' कमांड का उपयोग कैसे किया जाता है, ताकि आपके लॉग आउट होने या डिस्कनेक्ट होने पर भी वे चलते रहें।

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

“नोहप” का मूल सिंटैक्स है:

# नोहप [कमांड] और

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

# ssh [email protected]

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

# nohup mysqldump -ucalvin -phobbes bigdatabase> bigdatabase.db &
[1] 3999
# nohup:आउटपुट को `nohup.out' में जोड़ना

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

# ps -ef | ग्रेप 3999
केल्विन 3999 29848 0 18:42? 00:00:00 /usr/bin/mysqldump
केल्विन 6575 31852 0 18:44 अंक/2 00:00:00 grep 3999

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

[1]+ हो गया mysqldump -ucalvin -phobbes bigdatabase> bigdatabase.db

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

अब जब आप जानते हैं कि पृष्ठभूमि में प्रक्रियाओं को कैसे चलाना है, तो क्यों न कुछ अन्य linux युक्तियाँ और तरकीबें सीखें?


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

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

  1. लिनक्स में एक प्रक्रिया को कैसे मारें

    ऐसी कई विधियाँ हैं जिनका उपयोग Linux में किसी प्रक्रिया को समाप्त करने के लिए किया जा सकता है। यह ट्यूटोरियल आपको सिखाएगा कि टूटी हुई प्रक्रियाओं को कैसे खोजना और मारना है। एक प्रक्रिया आसानी से अनाथ हो सकती है। उद्देश्य पर या नहीं, एक मूल प्रक्रिया क्रैश हो सकती है और एक बच्चे की प्रक्रिया चल रही

  1. WSL का उपयोग करके विंडोज 10 और 11 पर लिनक्स ऐप कैसे चलाएं?

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