リモートディスプレイを有効にし、リモートでXアプリケーションを実行します。

リモートディスプレイを有効にし、リモートでXアプリケーションを実行します。

デスクトップコンピュータを実行しています。Debian 8.0アクセス権がありますssh。私はこのコンピュータ上でリモートでグラフィカルアプリケーションを実行しているので、デスクトップセッションを開いたままにしてコンピュータに入り、ssh次を実行します。

DISPLAY=:0.0 ./my-application

DISPLAY残念ながら、最近のコンピュータが再起動し、デスクトップセッションが終了し、現在のログイン画面が表示されるため、アクセスできなくなりますkdm-greet

DISPLAYリモートでグラフィカルセッションにログインするか、2番目のセッションを開始してアプリケーションを実行するメカニズムはありますか?ローカルモニタを使用するためにX11転送を実行することはできません。

答え1

プログラムと対話する必要がない場合(ただし、何らかの理由でXサーバーが必要な場合)、XvFB - 仮想フレームバッファディスプレイを使用できます。私はこれがビルドマシンでUIプログラムを実行するのに非常に便利だと思います(主にテストを自動化し、複数の言語で本番スクリーンショットを作成するため)。

ほとんどのディストリビューションでは次のようになりますxvfb

説明する:仮想フレームバッファ「偽」Xサーバー

Xvfbは、ディスプレイハードウェアや物理入力デバイスなしでコンピュータで実行できるXサーバーを提供します。仮想メモリを使用して愚かなフレームバッファをエミュレートします。このサーバーの主な用途はサーバーテスト用ですが、異常な奥行きと画面構成のクライアントテスト、バッチ処理のための背景レンダリングエンジンとしてのXvfbの使用、ロードテスト(補助)など、他の新しい用途も発見されました。 Xサーバーを使用することは新しいプラットフォームに移植され、実際にはXサーバーを必要としませんが、とにかくXサーバーが必要なアプリケーションを実行するための目立たない方法を提供します。

パッケージには、xvfb-run 仮想サーバー環境でのXクライアントの自動化を簡素化する便利なスクリプトも含まれています。この便利なスクリプトはプログラムを使用するために必要です xauth

答え2

TigerVNCなどのVNCサーバーをインストールします。 rootで起動し、ポートを転送してから(これはX11転送ではないため、個別に無効にしない限り、それを行うことができるはずです)接続します。ログイン画面が表示されます。ログイン。DISPLAY=:0.0 ./my-applicationこれにより、この時点でローカルにログインしたかのように実行が正常に行われます。

あるいは、root権限がない場合は、既存のDISPLAYに追加する代わりに、新しいDISPLAYを作成する別のVNCサーバー(vnc4serverなど)を使用できます。その後、プログラムに提供されている数字を使用してください。

関連情報