Linux SSHを使用してGUIアプリケーションを起動して実行しますか?

Linux SSHを使用してGUIアプリケーションを起動して実行しますか?

sshUbuntu 13.10がインストールされているマイサーバーにアクセスできます。

その後、ssh次の方法を使用してGUIアプリケーションを起動できます。

$ ssh -X my_login@address_of_sever

その後、名前(たとえば、、、、など gedit)でアプリケーションを起動でき、クライアントコンピュータで開きます(ウィンドウだけが開き、実際にはアプリケーションはリモートコンピュータ、つまりサーバー上で実行されています)firefoxgoogle-chrome

これはすべて良いです。

ただし、クライアントコンピュータでGUIアプリケーションを閉じると、サーバーでも閉じられます(合法的なようです)。

以下を使用してコンソールアプリケーションを起動できます。

$ nohup php somefile.php &  

接続を閉じた後も引き続き機能します。

GUIアプリケーションが同じことをできるかどうか疑問に思います。

理想的には、開いたウィンドウをサーバーに移動し、クライアントで何が起こっているのかを確認する必要があるときにクライアントに戻すことができる場合は、一種のトグルではありませんか?

答え1

君はできますXPula。ホームページから:

「リモートシステムでアプリケーション(この例では単純なxterm)を起動してローカルシステムに表示するには、次の手順を実行します。

xpra start ssh:SERVERHOSTNAME:100 --start-child=xterm

これはssh -Xに似ていますが、より速く、必要に応じて複数回セッションを切断して再接続できます。 (もちろん、サーバーホストにxpraがインストールされている必要があります。)他のシステムでこのセッションに再接続または接続するには、Attachコマンドを使用します(xpra_launcher GUIを使用することもできます)。

xpra attach ssh:serverhostname:100

答え2

あなたはできません。 「ssh -X」は、SSHチャネルを使用してX11プロトコルを転送します。 SSH接続が終了すると、アプリケーションはサーバーに接続できなくなります。

SSHとX11でできることは、ネットワークがローカルで安全な場合は、TCP受信モードでコンピュータからXサーバーを起動することです(多くのディスプレイマネージャでは、GUIまたはテキスト設定からオプションを削除する必要があります)。 -nolisten tcp).その場合は、次のようにします。

mydesktop$ xhost +myserver
mydesktop$ ssh myserver
myserver$ export DISPLAY=mydesktop:0
myserver$ xterm & disown
ctrl-C
mydesktop$

xtermはsshで始まり、引き続き機能しますが、xtermはsshなしでTCPを介して接続されます。

答え3

私が知っている限り、GUIアプリケーションをこの方法で復元する唯一の方法は、リモートサーバーのデスクトップからアプリケーションを起動してから、VNCなどのアプリケーションを使用してリモートシステムのデスクトップにリモートで接続することです。その後、この接続を中断し、必要に応じて再起動できます。

ローカルデスクトップにリモートで表示されるGUIアプリケーションを復元する方法がわかりません。

コンソールアプリケーションの場合、コンソールマネージャ(screenまたは)を使用してtmuxこれらの接続を復元したり、接続を開始するために使用されたSSH接続が失われた場合は、そのままにしてから後でリセットできます。

関連情報