Я запускаю интерактивную программу curses в сеансе экрана на довольно слабом оборудовании. В большинстве случаев экран отсоединен. Есть ли способ для этой программы обнаружить эту ситуацию и в основном остановить рисование на экране?
gnu-screen
Иоахим Брейтнер
источник
источник
Ответы:
Там есть скрипт irssi,
screen_away
который устанавливает ваш статус в зависимости от того, прикреплен экран или нет. Это работает так:Каждая оболочка, запущенная на экране, будет иметь
STY
переменную окружения с именем сокета. Вы можете запустить,screen -ls
чтобы получить путь, где хранятся все сокеты:Проверьте бит выполнения на
/var/run/screen/.../$STY
. Если он установлен, экран прикреплен; в противном случае он отделен. Вы можете видеть из вывода выше, что два из моих трех экранов прикреплены, и здесь установлены соответствующие биты выполнения:Вы также можете просто держать проверки вывода
screen -ls
для строки , которая содержит$STY
, и посмотреть , если он заканчивается(Attached)
или(Detached)
, но это требует запускаscreen
снова и сноваисточник