Hay un script irssi llamado screen_away
que establece su estado de ausencia en función de si la pantalla está conectada o no. Funciona así:
Cada shell que se ejecuta dentro de una pantalla tendrá la STY
variable de entorno establecida en el nombre del socket. Puede ejecutar screen -ls
para obtener la ruta donde se almacenan todos los sockets:
$ 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.
Verifique el bit de ejecución /var/run/screen/.../$STY
. Si está configurado, la pantalla está adjunta; de lo contrario está separado. Puede ver en el resultado anterior que dos de mis tres pantallas están conectadas, y aquí se establecen los bits de ejecución correspondientes:
$ 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
También puede seguir comprobando la salida de screen -ls
una fila que contiene $STY
y ver si termina en (Attached)
o (Detached)
, pero eso requiere ejecutar screen
una y otra vez