web-dev-qa-db-ja.com

実行中のアプリケーションを別のXサーバーに移動できますか?

SSH経由でX11転送を使用しているときにグラフィカルプログラム(たとえば、gedit)を開き、Xサーバー接続をSSHホスト上のXサーバーに転送する方法はありますか?

20
KG6ZVP

主題に関するウィキペディアのページを見ると、言及されているいくつかのアプリがあります。

Xmove

抜粋

xmoveは、異なるディスプレイ間でのX Window Systemアプリケーションの移動と、Xサーバーの再起動後のXアプリケーションの永続性を可能にするコンピュータープログラムです。[4]これは、Xの設計における問題を解決します。つまり、Xクライアント(Xアプリケーション)は、その存続期間中に開始されたXサーバー(Xディスプレイ)に関連付けられます。また、Xサーバーがシャットダウンすると、クライアントアプリケーションは強制的に実行を停止します。

xmoveを使用すると、クライアントは現在のXサーバーから切断し、いつでも新しいサーバーに接続できます。移行はクライアントに対して完全に透過的です。 xmoveは、クライアントとサーバー間のプロキシとして機能します。これは、クライアントが中断されることなく新しいサーバーに接続できるように十分なサーバー状態を格納する「疑似サーバー」です。

Xpra

抜粋

xpraまたはX Persistent Remote Applicationsは、通常はリモートホストでXクライアントを実行し、状態を失うことなくローカルマシンに表示を送ることができるツールです。 1

標準のX転送とは異なり、転送されたアプリケーションを中断することなく切断と再接続が可能です。これは、xpraがルートレスであるという点でVNCおよび類似のリモートディスプレイテクノロジーとは異なります。 Xpraはまた、セルフチューニングで比較的レイテンシの影響を受けないカスタムプロトコルを使用しているため、標準のXよりも悪いリンクで使用できます。

ギエビクト

抜粋

guievictは、X WindowのXFree86実装用のアプリケーションのGUIを別のディスプレイに透過的に移行または複製できるようにするコンピュータープログラムです。同様の機能を提供する一部のプログラムとは異なり、アプリケーションプログラムバイナリの再リンクや、xmoveのようなプロキシを介したアプリケーションプロセスのウィンドウシステム通信のリダイレクトなど、事前に準備する必要はありません。

Guievictは、アプリケーションがXサーバーからウィンドウ状態を取得できる小さなXサーバー拡張機能と、実行時にアプリケーションプロセスに挿入されるGUI移行機能のライブラリに基づいています。コードインジェクションまたはランタイムコードパッチは、DynInst APIを介して実行できます。ただし、guievictには独自の実装が含まれているため、ユーザーがDynInstをインストールする必要はありません。

これらのうち3つのうち、Guievictはあなたが探しているもののように聞こえます。主に、それはXアプリケーションAppXの状態をチェックポイントし、それを復元できる別のXサーバーに移行できるということです。

25
slm