프로그램이 분리 된 화면에서 실행되고 있음을 감지 할 수 있습니까?


10

꽤 약한 하드웨어의 스크린 세션에서 대화 형 curses 프로그램을 실행하고 있습니다. 대부분의 경우 화면이 분리됩니다. 이 프로그램이 이러한 상황을 감지하고 기본적으로 화면에서 페인팅을 중지하는 방법이 있습니까?


궁금한 점이 있습니다. 분리 된 화면을 실행하는 이유는 무엇입니까?
양서류

3
@foampile 화면을 분리하지 않으려면 화면 내에서 실행하는 요점은 무엇입니까?
Michael Mrozek

답변:


8

screen_away화면의 연결 여부에 따라 자리 비움 상태를 설정 하는 irssi 스크립트 가 있습니다. 다음과 같이 작동합니다.

화면 내에서 실행되는 모든 쉘은 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. 설정된 경우 화면이 연결됩니다. 그렇지 않으면 분리됩니다. 위 출력에서 ​​3 개의 화면 중 2 개가 연결되어 있고 여기에 해당 실행 비트가 설정되어 있음을 알 수 있습니다.

$ 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.