J'exécute un programme de malédictions interactif dans une session d'écran sur un matériel assez faible. La plupart du temps, l'écran se détache. Existe-t-il un moyen pour ce programme de détecter cette situation et d'arrêter de peindre sur l'écran?
J'exécute un programme de malédictions interactif dans une session d'écran sur un matériel assez faible. La plupart du temps, l'écran se détache. Existe-t-il un moyen pour ce programme de détecter cette situation et d'arrêter de peindre sur l'écran?
Réponses:
Il existe un script irssi appelé screen_away
qui définit votre statut d'absence selon que l'écran est attaché ou non. Cela fonctionne comme ceci:
Chaque shell exécuté dans un écran aura la STY
variable d'environnement définie sur le nom du socket. Vous pouvez exécuter screen -ls
pour obtenir le chemin où toutes les sockets sont stockées:
$ 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.
Vérifiez le bit d'exécution /var/run/screen/.../$STY
. S'il est défini, l'écran est attaché; sinon c'est détaché. Vous pouvez voir sur la sortie ci-dessus que deux de mes trois écrans sont attachés, et ici les bits d'exécution correspondants sont définis:
$ 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
Vous pouvez également continuer à vérifier la sortie de screen -ls
pour une ligne qui contient $STY
, et voir si elle se termine par (Attached)
ou (Detached)
, mais cela nécessite de courir screen
encore et encore