मैंने उस उपयोगकर्ता का उत्तर पढ़ा जिसने दावा किया था कि वह चल रहा है
foo 2>&1 >& output.log &
परिणाम foo
तब भी जारी रहेगा जब वे लॉग आउट करेंगे। इस उपयोगकर्ता के अनुसार, इसने SSH कनेक्शन पर भी काम किया।
मैं वास्तव में विश्वास नहीं करता था, जैसा कि मैं इस धारणा के तहत था कि एसएसएच से डिस्कनेक्ट करने या टीटीवाई को समाप्त करने के मामले में, शेल और इसलिए इसकी प्रक्रियाओं को एक साइट प्राप्त होगी, जिससे उन्हें समाप्त कर दिया जाएगा। यह, मेरी धारणा के तहत, nohup
ऐसे मामलों में उपयोग करने का एकमात्र कारण था , या tmux
, screen
एट अल।
मैं तो glibc के मैनुअल में देखा :
इस संकेत का उपयोग उस सत्र से जुड़ी नौकरियों के लिए एक टर्मिनल पर नियंत्रण प्रक्रिया की समाप्ति की रिपोर्ट करने के लिए भी किया जाता है; यह समाप्ति नियंत्रण टर्मिनल से सत्र की सभी प्रक्रियाओं को प्रभावी ढंग से काटती है।
यह मेरे विचारों की पुष्टि करता है। लेकिन आगे देखते हुए, यह कहते हैं :
यदि प्रक्रिया एक सत्र नेता है जिसमें एक नियंत्रण टर्मिनल है, तो अग्रभूमि नौकरी में प्रत्येक प्रक्रिया के लिए एक SITEUP संकेत भेजा जाता है, और नियंत्रण टर्मिनल उस सत्र से अलग हो जाता है।
तो, क्या इसका मतलब यह है कि बैकग्राउंड में काम करने वाले जॉब्स को SITEUP नहीं मिलेगा?
अपनी आगे की उलझन के लिए, मैंने एक इंटरैक्टिव Zsh सत्र चलाया, भाग गया yes >& /dev/null &
, और टाइप किया exit
, जब Zsh ने मुझे चेतावनी दी कि मैं नौकरी चला रहा हूं, और exit
दूसरी बार टाइप करने के बाद , मुझे बताया कि इसने एक ही काम किया था। बैश में ठीक वैसा ही करने से काम चल जाता है…
logout
औरyes
अभी भी चल रहा है।