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