Pasang kembali sesi X11 yang hilang


27

Saya menggunakan penerusan X11 sshuntuk menjalankan aplikasi Linux di kotak Windows saya, dan ketika jaringan turun, ia kehilangan semua yang sedang berjalan. Apakah ada yang mirip dengan screenuntuk X11?


Menjelaskan. Kenapa tidak pakai saja screen? Atau XVNC? Anda menjalankan layar pada mesin Linux dan ketika jaringan Anda jatuh, sambungkan kembali dan gunakan screen -DRuntuk memasang kembali sesi.
nix

@nix Akankah itu berfungsi untuk aplikasi X?
Michael Mrozek

2
@nix Saya tidak berpikir itu screenberfungsi untuk aplikasi gui.
Abdullah Jibaly

Tentu saja, layar perlu dijalankan dari xterm.
nix

Jawaban:


32

Xpra atau garpu Xpra mengklaim persis seperti itu:

Jadi pada dasarnya layar untuk aplikasi X jarak jauh.

Saya belum menggunakannya dalam beberapa saat, tetapi itu bekerja dengan cukup baik ketika saya mencobanya. Anda memulai server pada mesin jarak jauh:

[remote] $ xpra start :13

Kemudian Anda melampirkan ke server dari mesin lokal Anda:

[local] $ xpra attach ssh:remote:13

Dan sekarang apa pun yang ditampilkan pada tampilan X 13 pada mesin jarak jauh akan muncul secara lokal:

[remote] $ DISPLAY=:13 xeyes

4
Ada juga WinSwitch , yang sekilas terlihat seperti mengintegrasikan xpra dan perangkat lunak terkait lainnya.
Gilles 'SO- stop being evil'

6

Anda sedang mencari VNC . Prinsipnya agak mirip dengan layar: Anda menjalankan server VNC ( SCREENproses backgound ), dan klien VNC ( screenproses latar depan ). Server VNC adalah server X, sehingga Anda dapat menjalankan aplikasi X di dalamnya.

Jalankan server VNC pada kotak Linux dan klien di kotak Windows. Anda memiliki beberapa implementasi untuk dipilih; satu kemungkinan adalah TightVNC . TightVNC ada di banyak distribusi Linux (jika tidak ada dalam Anda, instal atau pilih implementasi yang berbeda), dan ada klien Windows.

Jika kedua mesin Anda tidak terlalu dekat pada jaringan - jika ada firewall atau risiko penyadap di antara mereka - Anda harus menyalurkan lalu lintas VNC melalui ssh. Minta ssh meneruskan port lokal 5900 ke port jarak jauh 5900 (5900 sesuai dengan tampilan :0, gunakan 5901 untuk :1, dll.).


4

Sebenarnya, Anda bisa meneruskan X ke screen. Satu-satunya hal yang harus dilakukan adalah mengatur $DISPLAYdi screenjendela sehingga sisi luarnya sama.

Prosedur

setelah ssh -Xmasuk ke mesin remote, ketik

$ echo $DISPLAY

dan salin hasilnya, biasanya localhost:N.0. Lalu masukkan screen, di screenjendela lokal ,

$ export DISPLAY=localhost:N.0

Setelah ini, jalankan Xprogram apa pun yang diperlukan dalam jendela layar yang akan dilakukan.

CATATAN: untuk setiap screenjendela, variabel lingkungan independen. Jadi untuk setiap jendela, Anda mungkin perlu mengaturnya secara terpisah.

Referensi


1
Hai Chong, selamat datang di unix.SE. Karena rincian solusi yang Anda tautkan sederhana, lebih baik untuk menulis ulang secara eksplisit di sini. Dengan cara ini jawabannya dipertahankan jika terjadi sesuatu pada posting di askubuntu.com. Tentu saja, itu juga merupakan ide bagus untuk menjaga tautan tetap ada karena itu membantu untuk sumber materi Anda.
drs

2
Saya mencoba solusi ini, tetapi saya tidak dapat menutup sesi ssh saya tanpa mematikan aplikasi X yang sedang berjalan. Ini entah bagaimana mengalahkan tujuan itu ... Bagaimana saya harus memutuskan sambungan dari host jarak jauh meninggalkan aplikasi jarak jauh berjalan?
Tonin
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.