इसके उपयोग के बारे में मेरी समझ है &, disownऔर nohup:
<command>: टर्मिनल के वर्तमानbashउदाहरण के भीतर , अग्रभूमि में प्रक्रिया चलाता है (यानी प्रक्रिया कोbashअग्रभूमि नौकरी के रूप में सूचीबद्ध किया गया हैstdin,stdoutऔरstderrअभी भी टर्मिनल के लिए बाध्य है ); हैंगअप के लिए प्रतिरक्षा नहीं ;<command> &: टर्मिनल के वर्तमान के भीतर प्रक्रिया चलाता हैbash, उदाहरण के लिए पृष्ठभूमि में (यानी प्रक्रिया एक रूप में सूचीबद्ध हैbashपृष्ठभूमि नौकरी औरstdin,stdoutऔरstderrअभी भी कर रहे हैं टर्मिनल के लिए बाध्य कर ); हैंगअप के लिए प्रतिरक्षा नहीं ;<command> & disown: प्रक्रिया को टर्मिनल की वर्तमानbashआवृत्ति के भीतर , पृष्ठभूमि में चलाता है , लेकिन प्रक्रिया 'नौकरी' की सूची से अलग हो जाती हैbash(अर्थात प्रक्रिया कोbashअग्रभूमि / पृष्ठभूमि नौकरी के रूप में सूचीबद्ध नहीं किया जाता हैstdin,stdoutऔरstderrअभी भी टर्मिनल के लिए बाध्य है ); हैंगअप के लिए प्रतिरक्षा ;nohup <command> & disown: टर्मिनल के वर्तमान के भीतर प्रक्रिया चलाता हैbash, उदाहरण के लिए पृष्ठभूमि में , लेकिन इस प्रक्रिया है से अलगbashहै नौकरियों की सूची (यानी प्रक्रिया एक के रूप में सूचीबद्ध नहीं है,bashअग्रभूमि / पृष्ठभूमि नौकरी औरstdin,stdoutऔरstderrकर रहे हैं नहीं अभी भी टर्मिनल के लिए बाध्य ) ; हैंगअप के लिए प्रतिरक्षा ;
तो, एक तरफ से nohup <command> & disownअवरुद्ध stdinऔर पुनः निर्देशित stdoutऔर stderrकरने के लिए nohup.outडिफ़ॉल्ट रूप से, यह मेरे लिए की तरह यह पूरी तरह से के बराबर माना जा सकता है लगता है <command> & disown।
क्या उपरोक्त सब सही है? कोई भ्रांति?
bashउदाहरण को समाप्त करना / मारना इस प्रक्रिया को नहीं मारेगा