デスクトップコンピュータを実行しています。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など)を使用できます。その後、プログラムに提供されている数字を使用してください。