इसके उपयोग के बारे में मेरी समझ है &
, 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
उदाहरण को समाप्त करना / मारना इस प्रक्रिया को नहीं मारेगा