मैं एक स्क्रीन सत्र में काफी कमजोर हार्डवेयर पर एक इंटरेक्टिव शाप कार्यक्रम चला रहा हूं। अधिकांश समय, स्क्रीन अलग हो जाती है। क्या इस कार्यक्रम के लिए इस स्थिति का पता लगाने का एक तरीका है, और मूल रूप से स्क्रीन पर पेंटिंग बंद करना है?
मैं एक स्क्रीन सत्र में काफी कमजोर हार्डवेयर पर एक इंटरेक्टिव शाप कार्यक्रम चला रहा हूं। अधिकांश समय, स्क्रीन अलग हो जाती है। क्या इस कार्यक्रम के लिए इस स्थिति का पता लगाने का एक तरीका है, और मूल रूप से स्क्रीन पर पेंटिंग बंद करना है?
जवाबों:
वहाँ एक 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ओवर रन करना आवश्यक है