'और' के साथ लिनक्स शेल कमांड क्यों चलाते हैं?
अपना संकेत तुरंत वापस पाने के लिए, और पृष्ठभूमि में प्रक्रिया को चलाएं।
इनका क्या कार्य है?
nohup पृष्ठभूमि प्रक्रिया को उपयोगकर्ता द्वारा लॉग आउट करने के बाद भी चालू रखने की अनुमति देता है (या आरंभ करने वाले शेल से बाहर निकलता है)।
> और लॉग फ़ाइल में मानक आउटपुट और मानक त्रुटि दोनों को रीडायरेक्ट करता है।
& पृष्ठभूमि में पूरी चीज चलाता है, आपको तुरंत अपना संकेत देता है।
स्पष्टीकरण:
प्रत्येक लिनक्स प्रक्रिया में तीन I / O चैनल, एक इनपुट "स्टडिन", एक मानक आउटपुट "stdout" और एक मानक त्रुटि आउटपुट "stderr" खुलता है। उनका उपयोग बाइनरी के लिए किया जा सकता है, लेकिन वे पारंपरिक रूप से पाठ हैं। जब अधिकांश कार्यक्रम स्टड पास देखते हैं, तो वे बाहर निकल जाते हैं (इसे प्रोग्रामर द्वारा बदला जा सकता है)।
जब माता-पिता खोल बाहर निकलते हैं, तो बच्चों पर स्टड बंद हो जाता है, और (अक्सर, आमतौर पर) बच्चे बाहर निकलते हैं। इसके अलावा, बच्चों को एक सॉफ्टवेयर सिग्नल प्राप्त होता है, SIGHUP, यह दर्शाता है कि उपयोगकर्ता ने "लटका दिया" (पूर्व में, मॉडेम) और यहां डिफ़ॉल्ट भी बाहर निकलने के लिए है। (ध्यान दें, प्रोग्राम लिखते समय एक प्रोग्रामर यह सब बदल सकता है)।
इसलिए, जो कुछ भी नहीं करता है, वह बच्चे को एक अलग I / O वातावरण की प्रक्रिया देता है, जो इन्स को और माता-पिता के कवच से बंधे नहीं होने के लिए बाध्य करता है, और बच्चे को Sightup सिग्नल से बचा लेता है। एक बार जब उपयोगकर्ता डिस्कनेक्ट हो जाता है, तो आप नॉटअप बैकग्राउंड प्रोसेस को इनिट (प्रक्रिया 1) के स्वामित्व में देखेंगे, न कि उपयोगकर्ता के शेल को।
हालाँकि nohup
यह प्रक्रिया पूरी तरह से काम नहीं कर सकती है अगर प्रक्रिया अग्रभूमि में चलती है, तो &
इसका उपयोग पृष्ठभूमि में प्रोग्राम को चलाने के लिए किया जाता है, जहां यह उपयोगकर्ता के साथ या बिना लॉगिन किए खुशी से रह सकता है।