जीएनयू स्क्रीन के भीतर से चलाया जा रहा है या नहीं, यह बताना संभव है?


10

हमारे पास एक दूरस्थ सर्वर पर एक लंबी चलने वाली प्रक्रिया है जो समय-समय पर मैन्युअल रूप से किक की जाती है। दुर्भाग्य से इंटरनेट कनेक्शन मर जाते हैं, गुठली घबराहट और अन्य चुनौतियों का एक पूरा मेजबान ssh सत्र से जुड़ा हो सकता है जो नौकरी को जोड़ने और शुरू करने के लिए उपयोग किया जाता है।

स्क्रीन प्रक्रिया को बाधित नहीं है यह सुनिश्चित करने के लिए एक सही तरीका की तरह लगता है। हालांकि, एक व्यक्ति पर भरोसा करना हमेशा स्क्रीन शुरू करने के लिए याद रखना और फिर प्रक्रिया शुरू करने के लिए स्क्रिप्ट को चलाना एक समस्या है। क्या स्क्रिप्ट से कोई रास्ता है जो मैं देख सकता हूं कि क्या स्क्रिप्ट को स्क्रीन के भीतर से बुलाया जा रहा है? अगर यह प्रक्रिया जारी रहेगी अन्यथा स्क्रिप्ट पहले संदेश चलाने के लिए उपयोगकर्ता को स्क्रीन चलाने के निर्देश के साथ बाहर निकल जाएगी।


जवाबों:


11

उसके लिए एक पर्यावरण चर है। अगर यह स्क्रीन के भीतर चलाया जा रहा है, तो $TERMहोगा screen। यह इत्ना आसान है; बस एक अगर उस पर करते हैं। उदाहरण के लिए,

if [ $TERM != 'screen' ]; then echo foo; else echo bar; fi

जब स्क्रीन में इको बार गूंजेंगे; फू अन्यथा।


2
यह तब भी हो सकता है screen-256colorजब उपयोगकर्ता ने 256 रंग समर्थन को कॉन्फ़िगर किया हो।
मॉर्गन 6

या स्क्रीन-बीओएस सिस्टम पर बायोबू स्थापित के साथ। इको $ TERM स्क्रीन-
ब्से

7

जब आप स्क्रीन के साथ काम कर रहे हैं, तो स्क्रिप्ट को 'नोहप' के साथ क्यों न चलाएं? यह भी सुनिश्चित करेगा कि डिस्कनेक्ट होने पर यह चलता रहे।

यह डिफ़ॉल्ट रूप से एक फ़ाइल के लिए आउटपुट करता है, इसलिए यदि आप चाहें तो स्क्रिप्ट आउटपुट को मॉनिटर करने के लिए आप अन्य टूल का उपयोग कर सकते हैं।


1
जबकि nohup के साथ चलने से यह सुनिश्चित होता है कि प्रक्रिया जारी रहना सुनिश्चित करने का एक ही परिणाम होगा। क्या मेरे पास अभी भी ऐसा नहीं होगा कि कोई व्यक्ति nohup के साथ स्क्रिप्ट चलाना भूल जाए? या क्या स्क्रिप्ट में कोई तरीका है जिससे यह सुनिश्चित किया जा सके कि 'nohup' का उपयोग किया गया था या क्या मुझे एक रैपर स्क्रिप्ट बनाने की ज़रूरत है जो मेरे मूल स्क्रिप्ट को nohup कहे?
6

हाँ। जबकि मैं अपने पैदावरों (कनिष्ठ sysadmins) से प्यार करता हूं जैसे मैं अपने बच्चों से प्यार करता हूं, वे अक्सर उन प्रकार की चीजों को भूल जाते हैं। इसलिए सब कुछ लिपट जाता है ताकि उन्हें यह याद न रहे कि महत्वपूर्ण आदेशों को उपसर्ग करने के लिए किन चीजों को टाइप करना है।
मैगलन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.