Ricollega alla sessione X11 persa


27

Sto usando l'inoltro X11 sshper eseguire le app Linux sul mio box di Windows e quando la rete cade perde tutto ciò che era in esecuzione. C'è qualcosa di simile a screenX11?


Chiarire. Perché non usare solo screen? Oppure XVNC? Esegui lo schermo sulla macchina Linux e quando la tua rete cade, riconnettiti e usa screen -DRper ricollegare la sessione.
nix,

@nix Funzionerà con le app X?
Michael Mrozek

2
@nix Non credo funzioni screenper le app gui.
Abdullah Jibaly,

Naturalmente, lo schermo richiederebbe l'esecuzione da un xterm.
nix,

Risposte:


32

Xpra o la forcella Xpra affermano di essere esattamente questo:

Quindi in pratica è lo schermo per le app X remote.

Non lo uso da un po ', ma ha funzionato abbastanza bene quando l'ho provato. Si avvia il server sul computer remoto:

[remote] $ xpra start :13

Quindi ti connetti al server dal tuo computer locale:

[local] $ xpra attach ssh:remote:13

E ora qualsiasi cosa visualizzata sul display X 13 sul computer remoto apparirà localmente:

[remote] $ DISPLAY=:13 xeyes

4
C'è anche WinSwitch , che a prima vista sembra integrare xpra e altri software correlati.
Gilles 'SO- smetti di essere malvagio' il

6

Stai cercando VNC . Il principio è in qualche modo simile allo schermo: si esegue un server VNC (il SCREENprocesso di backgound ) e un client VNC (il screenprocesso di primo piano ). Il server VNC è un server X, quindi è possibile eseguire le applicazioni X al suo interno.

Eseguire un server VNC sulla casella Linux e un client sulla casella Windows. Hai diverse implementazioni tra cui scegliere; una possibilità è TightVNC . TightVNC è presente in molte distribuzioni Linux (se non è nelle tue, installalo o scegli un'implementazione diversa) e c'è un client Windows.

Se le tue due macchine non sono molto vicine alla rete - se c'è un firewall o c'è il rischio di intercettazioni tra loro - dovrai effettuare il tunneling del traffico VNC attraverso ssh. Avere ssh in avanti la porta locale 5900 alla porta remota 5900 (5900 corrisponde al display :0, usare 5901 per :1, ecc.).


4

In realtà, puoi inoltrare X in screen. L'unica cosa da fare è impostare $DISPLAYla screenfinestra in modo che sia la stessa parte esterna di essa.

Procedura

dopo ssh -Xnella macchina remota, digitare

$ echo $DISPLAY

e copia il risultato, di solito localhost:N.0. Quindi inserire screen, nella screenfinestra locale ,

$ export DISPLAY=localhost:N.0

Dopodiché, eseguirà qualsiasi Xprogramma richiesto all'interno della finestra dello schermo.

NOTA: per ogni screenfinestra, le variabili di ambiente sono indipendenti. Pertanto, per ciascuna finestra, potrebbe essere necessario configurarlo separatamente.

Riferimenti


1
Ciao Chong, benvenuto su unix.SE. Poiché i dettagli della soluzione che colleghi sono semplici, è meglio riscriverli esplicitamente qui. In questo modo la risposta viene preservata se dovesse succedere qualcosa al post su askubuntu.com. Naturalmente, è una buona idea mantenere presente anche il collegamento perché aiuta a reperire il materiale.
drs

2
Ho provato questa soluzione, ma non riesco a chiudere la mia sessione ssh senza uccidere l'applicazione X in esecuzione. Questo in qualche modo ne vanifica lo scopo ... Come devo disconnettermi dall'host remoto lasciando in esecuzione l'applicazione remota?
Tonin,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.