यह सवाल आ गया है काफी एक बहुत ( वास्तव में एक बहुत ), लेकिन मुझे जवाब आम तौर पर अधूरा लग रहा हूँ। सामान्य प्रश्न यह है कि "ssh बाहर निकलने / मारने पर मेरी नौकरी क्यों नहीं जाती / मारती है?", और यहाँ मैंने क्या पाया है। पहला सवाल है: निम्नलिखित जानकारी कितनी सामान्य है? निम्नलिखित आधुनिक डेबियन लिनक्स के लिए सही प्रतीत होता है, लेकिन मुझे कुछ बिट्स याद आ रहे हैं; और दूसरों को क्या पता होना चाहिए?
Ssh कनेक्शन पर खोले गए शेल के सभी चाइल्ड प्रोसेस, बैकग्राउंड या नहीं, SIGHUP के साथ मारे जाते हैं, जब ssh कनेक्शन केवल तभी बंद
huponexitहोता है जब विकल्प सेट होता है:shopt huponexitयह देखने के लिए रन करें कि क्या यह सच है।यदि
huponexitयह सच है, तो आप शेल से प्रक्रिया का उपयोग कर सकते हैंnohupयाdisownइसे अलग कर सकते हैं ताकि बाहर निकलने पर यह मारा न जाए। या, चीजों को चलाएंscreen।यदि
huponexitझूठा है, जो इन दिनों कम से कम कुछ linuxes पर डिफ़ॉल्ट है , तो सामान्य लॉगआउट पर पृष्ठभूमि वाली नौकरियों को नहीं मारा जाएगा।लेकिन यहां तक कि अगर
huponexitगलत है, तो अगर ssh कनेक्शन मारा जाता है , या ड्रॉप (सामान्य लॉगआउट से अलग), तो पृष्ठभूमि वाली प्रक्रियाएं अभी भी मार दी जाएंगी। इससे (2) मेंdisownया इससे बचा जा सकता हैnohup।(ए) प्रक्रियाओं के बीच कुछ अंतर है, जिसकी मूल प्रक्रिया टर्मिनल है और (बी) प्रक्रियाएं जिनके पास स्टड, स्टडआउट या टर्मिनल से जुड़ा स्टडर है । मुझे नहीं पता कि जो प्रक्रियाएं होती हैं, वे (ए) और नहीं (बी), या इसके विपरीत हैं।
अंतिम प्रश्न: मैं व्यवहार (3) से कैसे बच सकता हूं? दूसरे शब्दों में, डेबियन पृष्ठभूमि में डिफ़ॉल्ट रूप से प्रक्रियाएं लॉगआउट के बाद स्वयं द्वारा पूरी तरह से चलती हैं, लेकिन ssh कनेक्शन के मारे जाने के बाद नहीं। मैं चाहे जो भी कनेक्शन सामान्य रूप से बंद कर दिया गया था या मार दिया गया था, उसी तरह की प्रक्रियाओं का भी होना चाहूंगा। या, यह एक बुरा विचार है?
संपादित करें: मारे जाने की नौकरियों को बनाए रखने के लिए एक और महत्वपूर्ण तरीका, वह काम करता है (?) या तो मामले में उन्हें स्क्रीन के माध्यम से चलाना है । लेकिन, सवाल यह समझने के बारे में है कि जब चीजें मार दी जाती हैं और जब वे नहीं होती हैं: कभी-कभी लोग चाहते हैं कि लोग लॉगआउट पर मारे जाएं, उदाहरण के लिए।
अधिक धागे: - संकेतों (sighup), नौकरियों और नियंत्रण टर्मिनल पर स्पष्टीकरण - /server/117152/do-background-processes-get-a-sighup-when-log-off - Continue SSH SSH को बंद करते समय बैकग्राउंड टास्क / जॉब - क्या SSH सेशन बंद होने के बाद बैकग्राउंड में जॉब चलती रहेगी? - SSH क्लाइंट को बंद करने के बाद पहले से चल रहे बैकग्राउंड प्रोसेस को रोकना - मैं SSH पर एक ऐसी प्रक्रिया कैसे शुरू कर सकता हूं कि यह डिस्कनेक्ट होने के बाद भी चलती रहेगी? - OS X पर रिमोट जॉब चालू रखने में असमर्थ - SSH कनेक्शन बंद करें