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

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

나는 매우 약한 하드웨어의 스크린 세션에서 대화형 저주 프로그램을 실행하고 있습니다. 대부분의 경우 화면이 분리되어 있습니다. 이 프로그램이 이를 감지하고 기본적으로 화면에 그림 그리기를 중지하는 방법이 있나요?

답변1

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

관련 정보