โปรแกรมสามารถตรวจพบว่ามันกำลังทำงานในหน้าจอที่ถอดออกได้หรือไม่?


10

ฉันกำลังใช้โปรแกรม curses แบบโต้ตอบในเซสชันหน้าจอกับฮาร์ดแวร์ที่ค่อนข้างอ่อนแอ ส่วนใหญ่แล้วหน้าจอจะถูกถอดออก มีวิธีใดบ้างสำหรับโปรแกรมนี้ในการตรวจสอบสถานการณ์นี้และโดยทั่วไปจะหยุดการวาดภาพบนหน้าจอหรือไม่?


ฉันแค่อยากรู้อยากเห็น: อะไรคือเหตุผลบางอย่างที่คุณจะเรียกใช้หน้าจอเดี่ยว
สัตว์สะเทินน้ำสะเทินบก

3
@foampile หากคุณไม่เคยแยกหน้าจออะไรคือจุดที่ทำงานอยู่ภายในหน้าจอเลย?
Michael 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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.