X11 uygulamalarını uzaktan nasıl çalıştırırım?


5

Uzak bir sunucuda barındırılan X11 uygulamalarını aşağıdaki hedefler doğrultusunda nasıl çalıştırabilirim:

  • Koşmak her şey Bu sunucuda yerel olarak çalışır. Bu, kullanan OpenGL uygulamalarını içerir GLX.
  • Yerel masaüstüyle sorunsuz entegrasyon, yani uygulamalar, ayrı bir masaüstü alanı olmadan yerel olarak çalışıyor gibi görünüyor. Bu nedenle, bir sarmalayıcı protokolüne değil, bir X 11 çözümüne ihtiyacım var.
  • Tercihen, bağlantım kesilirse uygulamaların çalışmaya devam etmesine izin verir; daha sonra, yeniden bağlandığımda çalışan uygulamaları daha sonra yeniden açabilirim.

Süper kullanıcı için burada yüzen bir çok öneri gördüm, ama çoğu kısmi bir düzeltme ya da sadece düz kötü.

  • sade ssh X11-Forwarding çıktı: Belirli uygulamaları çalıştıramaz, özellikle GLX uzantısına dayanan uygulamaları çalıştıramaz.
  • Ayar LIBGL_ALWAYS_INDIRECT=1 benim için çalışmıyor
  • Xephyr da çıktı. Şu anda GLX'i desteklemiyor, ancak geliştirme ağacında bazı GLX çalışmaları gördüm. Belki gelecekte, en temiz yol bu olacak.
  • xmove da çıktı. Daha fazla düşünmek için çok eski.
  • VNC çıktı. Tüm masaüstünü yönlendirir ve X protokolünü bozamaz.

EDIT: Bir kaç hafta sonu için birkaç öneride bulunmak için savaştım. xpra en iyisi budur. Kurulumu aşağıdaki cevapta açıkladım ve umarım başka birine yardımcı olur.

Yanıtlar:


8

Xpra (söylendiği gibi İşte ) ne istersem onu ​​yapar. Aynı bilgisayarda veya başka bir makinede birden çok istemciye iletilebilen rastgele X uygulamalarının çalıştırılmasını sağlar. OpenGL uygulamalarını da çalıştırmayı destekler ve son istemcinin bağlantısı kesildikten sonra bile uygulamalarınızın çalışmaya devam etmesine olanak tanır - size daha sonra tekrar bağlantı kurma şansı verir.

xpra iki parça halinde gelir: bir müşteri ve bir sunucu. Sunucuyu başlatmak için uzaktaki makinede aşağıdakileri çalıştırın:

$ xpra start :100

Bu başlar xpra yeni bir X ekranda. (Orada bir geçici çözüm Proxy ile kullanmak için.)

Tarafından kontrol edilen bir uygulamaya sahip olmak xpra, aynı ekranda aynı xpra sunucu, bunun gibi:

$ export DISPLAY=:100
$ firefox&
$ blender&
...

Bunların hepsi sorunsuz bir ssh bağlantısı ile (X11 Yönlendirme ile veya olmadan) yapılabilir.

Bir müşteri başlatmak için aşağıdakilerden birini yapın:

$ ssh -X user@remotehost
<gain remote connection>
$ xpra attach :100

veya

$ xpra attach ssh:user@remotehost:100

İkincisi gerektirir gerektirir xpra yerel makinenize kurulacak istemci; eski değil.

xpra istemci, pencere yöneticinizin görev çubuğuna / paneline bir istemci koyar ve istemcinin bağlantısını kesmenize izin verir. (Ya da, sunucuyu öldürmemeye özen gösterdiğiniz sürece onu öldürebilirsiniz.) Daha sonra tekrar bağlanabilirsiniz. xpra sunucu hala çalışıyor. Eğer bir tane varsa xpra sunucuda çalışan bir sunucuda, yalnızca görünen numarayı da atlayabilirsiniz ve xpra attach çözecek.

Bir çok güzel özelliği xpra önceden var olan bir ekranda bir sunucu başlatmanızı sağlar. Bu, bir oturumu kurtarmanıza olanak verir. xpra sunucu çöküyor (bu ekrandaki X sunucu hala çalışıyorsa). Bunu yapmak için koş

$ xpra start --use-display :100

Uyarılar:

  • xpra bir pencere yöneticisi olarak çalışır. Diğer pencere yöneticilerine katıştırma ile oldukça iyi oynamasına rağmen, X uygulamalarının kendileriyle çok iyi oynamıyor: Buna izin vermiyor; rxvt-unicode başlık çubuğunu kaldırmak için; ayrıca, pencerelere ekranda ne kadar yer kalmaları gerektiğini, örneğin açılır kutular ve menüler ekrandan düştüğünü söylemez. Ancak, ikinci sorunun yapılandırmamı düzeltmekle ilgili olduğunu düşünüyorum.

  • Anahtarlar tekrarlanır. Sık sık. Bu kullanılarak çözülebilir xpra attach --no-keyboard-sync, ancak man sayfası, bunun bazı oyunlarda iyi çalışmadığı konusunda uyarıyor. Parmaklarımı tutuyorum, kendimi bu oyunlardan birini kullanmak için özlem bulamadım.

Bu nedenlerden dolayı, Xephyr daha iyi bir çözüm olabilir (GLX'i destekledikten sonra), çünkü bir pencere yöneticisi değil X sunucusu olarak çalışır. Bununla birlikte, daha önce bağlantısı kesilen oturumlara devam etmeyi destekleyip desteklemediğini araştırmadım.


Cevap olarak yapmak yerine ana gönderinizi düzenleyebilirsiniz.
Kruug

Bazı rakip cevaplar istiyorum. İdeal olarak, birisi daha iyi bir şey gönderir.
jpaugh

1
Elbette, ama sonra onları beklersiniz ... ayrıca, Xming’e bakın sourceforge.net/projects/xming
Kruug

1
Güzel olan, teşekkürler. Ayrıca sunucuya bir argüman eklemek zorunda kaldım. xpra start :100 --start-via-proxy=no - hata Warning: cannot use the system proxy for 'start' subcommand, failed to connect to '/run/xpra/system': [Errno 2] No such file or directory.
HankCa

@HankCa. Teşekkürler, metni güncelledim. Bir süredir xpra kullanmıyorum. Senin için nasıl çalışıyor?
jpaugh
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.