क्या कोई प्रोग्राम यह पता लगा सकता है कि यह एक अलग स्क्रीन में चल रहा है?


10

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


मैं बस उत्सुक हूँ: क्या कुछ कारण हैं जो आप एक अलग स्क्रीन चलाएंगे?
उभयचर

3
@foampile यदि आप कभी भी स्क्रीन को अलग नहीं करने जा रहे हैं, तो स्क्रीन के भीतर चलने की क्या बात है?
माइकल Mrozek

जवाबों:


8

वहाँ एक irssi स्क्रिप्ट कहा जाता है screen_awayजो स्क्रीन से जुड़ी है या नहीं इसके आधार पर आपकी दूर की स्थिति सेट करती है। यह इस तरह काम करता है:

एक स्क्रीन के भीतर चलने वाले प्रत्येक शेल में सॉकेट नाम के लिए STYपर्यावरण चर सेट होगा। आप screen -lsउस मार्ग को प्राप्त करने के लिए दौड़ सकते हैं जहां सभी कुर्सियां ​​संग्रहीत हैं:

$ screen -ls

There are screens on:
        11824.pts-24.mmrozek    (Attached)
        2306.ssh        (Detached)
        6615.chat       (Attached)
3 Sockets in /var/run/screen/S-mmrozek.

निष्पादित बिट पर जाँच करें /var/run/screen/.../$STY। यदि यह सेट है, तो स्क्रीन संलग्न है; अन्यथा यह अलग है। आप ऊपर दिए गए आउटपुट से देख सकते हैं कि मेरी तीन में से दो स्क्रीन अटैच हैं, और यहाँ पर संबंधित एग्जिट बिट्स सेट हैं:

$ ls -l /var/run/screen/S-mmrozek/

total 0
prwx------ 1 mmrozek mmrozek 0 Oct  5 13:04 11824.pts-24.mmrozek
prw------- 1 mmrozek mmrozek 0 Sep 23 23:45 2306.ssh
prwx------ 1 mmrozek mmrozek 0 Oct  5 12:43 6615.chat

आप बस screen -lsउस पंक्ति के आउटपुट की जांच कर सकते हैं $STY, जिसमें शामिल है , और देखें कि क्या यह समाप्त होता है (Attached)या नहीं (Detached), लेकिन इसके लिए screenओवर रन करना आवश्यक है


1
हा, आज कुछ नया सीखा। किसी भी विचार है कि अगर बिट निष्पादित एक "संलग्न / अलग" झंडे से ज्यादा कुछ भी मतलब है?
jw013
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.