J'utilise le transfert X11 sshpour exécuter des applications Linux sur ma boîte Windows, et lorsque le réseau tombe, il perd tout ce qui était en cours d'exécution. Y a-t-il quelque chose de similaire à screenX11?
Clarifier. Pourquoi ne pas simplement utiliser screen? Ou XVNC? Vous exécutez l'écran sur la machine Linux et lorsque votre réseau tombe, reconnectez et utilisez screen -DRpour rattacher la session.
nix
@nix Cela fonctionnera-t-il pour les applications X?
Michael Mrozek
2
@nix Je ne pense pas que cela screenfonctionne pour les applications gui.
Abdullah Jibaly
Bien sûr, l'écran nécessiterait de fonctionner à partir d'un xterm.
Il y a aussi WinSwitch , qui en un coup d'œil semble intégrer xpra et d'autres logiciels connexes.
Gilles 'SO- arrête d'être méchant'
6
Vous recherchez VNC . Le principe est quelque peu similaire à celui de l'écran: vous exécutez un serveur VNC (le SCREENprocessus d' arrière-plan ) et un client VNC (le screenprocessus de premier plan ). Le serveur VNC est un serveur X, vous pouvez donc y exécuter des applications X.
Exécutez un serveur VNC sur la boîte Linux et un client sur la boîte Windows. Vous avez le choix entre plusieurs implémentations; une possibilité est TightVNC . TightVNC est dans de nombreuses distributions Linux (si ce n'est pas dans la vôtre, installez-le ou choisissez une implémentation différente), et il y a un client Windows.
Si vos deux machines ne sont pas très proches du réseau - s'il y a un pare-feu ou un risque d'écoute indiscrète entre elles - vous devrez tunneler le trafic VNC via ssh. Demandez à ssh de transmettre le port local 5900 au port distant 5900 (5900 correspond à l'affichage :0, utilisez 5901 pour :1, etc.).
En fait, vous pouvez transférer X dans screen. La seule chose à faire est d'installer le $DISPLAYdans la screenfenêtre de sorte qu'il soit le même à l'extérieur.
Procédure
après ssh -Xdans la machine distante, tapez
$ echo $DISPLAY
et copiez le résultat, généralement localhost:N.0. Entrez ensuite screen, dans la screenfenêtre locale ,
$ export DISPLAY=localhost:N.0
Après cela, exécutez tout Xprogramme requis dans la fenêtre d'écran fera l'affaire.
REMARQUE: pour chaque screenfenêtre, les variables d'environnement sont indépendantes. Ainsi, pour chaque fenêtre, vous devrez peut-être la configurer séparément.
Salut Chong, bienvenue sur unix.SE. Étant donné que les détails de la solution que vous liez sont simples, il est préférable de les réécrire explicitement ici. De cette façon, la réponse est conservée si quelque chose arrive à la publication sur askubuntu.com. Bien sûr, c'est aussi une bonne idée de garder le lien présent car cela aide à trouver votre matériel.
drs
2
J'ai essayé cette solution, mais je ne peux pas fermer ma session ssh sans tuer l'application X en cours d'exécution. Cela va en quelque sorte à l'encontre de son objectif ... Comment dois-je me déconnecter de l'hôte distant en laissant l'application distante en cours d'exécution?
screen
? OuXVNC
? Vous exécutez l'écran sur la machine Linux et lorsque votre réseau tombe, reconnectez et utilisezscreen -DR
pour rattacher la session.screen
fonctionne pour les applications gui.Réponses:
Xpra ou la fourche Xpra prétendent être exactement cela:
Je ne l'ai pas utilisé depuis un moment, mais cela a plutôt bien fonctionné quand je l'ai essayé. Vous démarrez le serveur sur la machine distante:
Ensuite, vous vous connectez au serveur à partir de votre ordinateur local:
Et maintenant, tout ce qui est affiché sur l'affichage X 13 sur la machine distante apparaîtra localement:
la source
Vous recherchez VNC . Le principe est quelque peu similaire à celui de l'écran: vous exécutez un serveur VNC (le
SCREEN
processus d' arrière-plan ) et un client VNC (lescreen
processus de premier plan ). Le serveur VNC est un serveur X, vous pouvez donc y exécuter des applications X.Exécutez un serveur VNC sur la boîte Linux et un client sur la boîte Windows. Vous avez le choix entre plusieurs implémentations; une possibilité est TightVNC . TightVNC est dans de nombreuses distributions Linux (si ce n'est pas dans la vôtre, installez-le ou choisissez une implémentation différente), et il y a un client Windows.
Si vos deux machines ne sont pas très proches du réseau - s'il y a un pare-feu ou un risque d'écoute indiscrète entre elles - vous devrez tunneler le trafic VNC via ssh. Demandez à ssh de transmettre le port local 5900 au port distant 5900 (5900 correspond à l'affichage
:0
, utilisez 5901 pour:1
, etc.).la source
En fait, vous pouvez transférer X dans
screen
. La seule chose à faire est d'installer le$DISPLAY
dans lascreen
fenêtre de sorte qu'il soit le même à l'extérieur.Procédure
après
ssh -X
dans la machine distante, tapezet copiez le résultat, généralement
localhost:N.0
. Entrez ensuitescreen
, dans lascreen
fenêtre locale ,Après cela, exécutez tout
X
programme requis dans la fenêtre d'écran fera l'affaire.REMARQUE: pour chaque
screen
fenêtre, les variables d'environnement sont indépendantes. Ainsi, pour chaque fenêtre, vous devrez peut-être la configurer séparément.Les références
la source