Comment savoir si la console actuelle est sous un screen ?

Bonjour,

Petite question sur screen : y a-t-il moyen de savoir si le shell actuel fonctionne sous screen ?

(Ou, autrement dit, y a-t-il un moyen de savoir si l’on appartient à la matrice ? :unamused:)

En regardant ses processus parents, par exemple avec ps ou pstree.

Salut, merci de ta réponse ! Efectivement ça marche. Il y a aussi le fait de taper C-a : car si on te propose un prompt de commande c’est qu’on est sous screen. Hors ça, je voulais savoir s’il y a un moyen de tester, en script shell, si on tourne sous une session screen.

Je réponds à ma question : sous Screen, la variable $TERM est égale à screen.
On peut tester la chose suivante :

~$ echo $TERM xterm ~$ screen -S console ~$ echo $TERM screen

C’est cool, mais par contre :

~$ echo $TERM xterm ~$ screen -S console ~$ ssh mon_user@mon_serveur_distant.com ~$ echo $TERM screen

Il faut trouver mieux, pour savoir si le shell actuel est directement un screen.

screen -ls t’affiche la liste des screen avec leur PID.

Tu peux donc remonter les process parents de ton script, jusqu’à ce que tu arrives sur un screen. Si tu remontes jusqu’au PID 1 sans matcher, c’est que tu n’es pas dans un screen :

#!/bin/sh

pid=$$
while [ $pid -ne 1 ]; do
	if screen -ls | grep -q $pid ; then
		echo "Le screen $pid est parent de ce process"
		exit
	fi

	pid=`grep '^PPid:' /proc/$pid/status | cut -f2`
done

Merci, j’ai un peu regardé tout ça et maintenant ça marche pas mal !
(d’ailleurs, screen c’est vraiment de la bombe ^^)

[quote=“Le Barde”]Merci, j’ai un peu regardé tout ça et maintenant ça marche pas mal !
(d’ailleurs, screen c’est vraiment de la bombe ^^)[/quote]
Jette un œil du coté de Byobu, qui embelli “screen” de manière très sympathique. :007

Tout à fait, même :slightly_smiling:

En fait, je me configure plusieurs .screenrc pour l’instant -> Un screen général, et un screen à lancer en un exemplaire (monitoring avec htop, des tail -f, etc.).

Alors regarde aussi multitail qui est complémentaire et te permettra de suivre plusieurs fichiers en une seule console.

Screen ou Tmux sont des outils sympa mais pas systématiquement installé sur un serveur et c’est bien dommage :snooty:

Coole pour Tmux, je ne connaissais pas et ça m’a tout l’air d’être bien :slightly_smiling:

Anyway, ce sont des machines perso ou des serveurs privés ^^