Korzystam z interaktywnego programu przekleństw w sesji ekranowej na dość słabym sprzęcie. Przez większość czasu ekran jest odłączony. Czy istnieje sposób, aby ten program wykrył tę sytuację i po prostu przestał malować na ekranie?
Korzystam z interaktywnego programu przekleństw w sesji ekranowej na dość słabym sprzęcie. Przez większość czasu ekran jest odłączony. Czy istnieje sposób, aby ten program wykrył tę sytuację i po prostu przestał malować na ekranie?
Odpowiedzi:
Wywoływany jest skrypt irssi, screen_away
który określa twój status nieobecności na podstawie tego, czy ekran jest podłączony. Działa to tak:
Każda powłoka działająca na ekranie będzie miała STY
zmienną środowiskową ustawioną na nazwę gniazda. Możesz uruchomić, screen -ls
aby uzyskać ścieżkę, w której przechowywane są wszystkie gniazda:
$ 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.
Sprawdź bit wykonania na /var/run/screen/.../$STY
. Jeśli jest ustawiony, ekran jest dołączony; w przeciwnym razie jest odłączony. Z powyższego wyjścia widać, że dwa z moich trzech ekranów są podłączone, a tutaj ustawione są odpowiednie bity wykonania:
$ 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
Można też po prostu zaglądać wyjście screen -ls
dla wiersza, który zawiera $STY
i zobacz, jeśli kończy się (Attached)
albo (Detached)
, ale to wymaga prowadzenia screen
kółko