Lorsque vous utilisez écran vous devrez copier manuellement les variables d'environnement requises.
Détacher de la écran session, exécuter echo $DISPLAY
et copier la valeur.
Maintenant, rattachez et exécutez export DISPLAY="_copied value_"
.
Lorsque vous créez une session Screen, le écran hérite automatiquement d'une copie de l'environnement actuel, qui est également héritée par les shells ou autres processus que vous démarrez dans de nouvelles fenêtres d'écran à l'intérieur de la session.
xterm (DISPLAY=":0")
bash (DISPLAY=":0")
screen (client) (DISPLAY=":0")
SCREEN (server) (DISPLAY=":0")
irssi (DISPLAY=":0")
mutt (DISPLAY=":0")
bash (DISPLAY=":0")
Lorsque vous vous connectez par SSH avec la redirection X11 activée, le serveur SSH définit l'adresse de l'utilisateur. $DISPLAY
variable d'environnement pointant vers votre serveur X11.
Cependant, lorsque vous vous rattachez à une session Screen, les processus s'exécutant dans cette session ne le verront pas ; ils détiennent toujours des copies de l'objet vieux l'environnement.
sshd (DISPLAY="localhost:12")
bash (DISPLAY="localhost:12")
screen (client) (DISPLAY="localhost:12")
SCREEN (server) (DISPLAY=":0")
irssi (DISPLAY=":0")
mutt (DISPLAY=":0")
bash (DISPLAY=":0")
En effet, un processus n'est pas autorisé à mettre à jour les environnements d'autres processus, mais uniquement les siens. Même si le écran Le processus client dispose du nouvel environnement, mais il ne peut pas le donner à l'utilisateur. écran le protocole utilisé par Screen ne dispose pas d'une telle fonction.
D'autres multiplexeurs, tels que tmux permettent aux clients d'envoyer une copie de leur environnement au serveur lors du rattachement. Ce n'est pas complètement efficace ; cela ne permet qu'aux clients nouvellement ouverts d'envoyer une copie de leur environnement au serveur. tmux Windows pour hériter du nouvel environnement, mais toujours ne peut rien faire à propos de Windows qui fonctionne déjà.