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