| タイプ | ディスプレイサーバー |
|---|---|
| Webサイト | x.org/releases/X11R7.7/doc/man/man1/Xvfb.1.xhtml |
XvfbまたはX 仮想フレームバッファは、 X11ディスプレイ サーバ プロトコルを実装したディスプレイ サーバです。他のディスプレイ サーバとは異なり、Xvfb は画面出力を表示せずにすべてのグラフィック操作を仮想メモリ内で実行します。Xクライアントアプリケーションの観点からは、他のX ディスプレイ サーバとまったく同じように動作し、要求に応え、必要に応じてイベントとエラーを送信します。ただし、出力は表示されません。この仮想サーバでは、コンピュータにグラフィック アダプタ、画面、または入力デバイスがなくても動作します。必要なのはネットワーク層だけです。Xvfb は、 Mesa経由のコンポジットや OpenGL GLXサポートなど、いくつかのX プロトコル拡張をサポートしています。[1]
使用シナリオ
Xvfb は主にテストに使用されます。
- 実際の X サーバーとコードを共有するため、特定のハードウェアに関連しないコードの部分をテストするために使用できます。
- これを使用すると、通常はさまざまなハードウェアが必要となるさまざまな条件でクライアントをテストできます。たとえば、ハードウェアでサポートされることがほとんどない深度や画面サイズでクライアントが正しく動作するかどうかをテストできます。
- クライアントのバックグラウンド実行。(スクリーンショットをキャプチャするためのxwdプログラムまたは同様のプログラムを使用して、実際に結果を確認できます)
- 一般的に、Xサーバーで何も表示していないときでも、Xサーバーをアクティブにする必要があるプログラムを実行します。(例: Selenium [2]やJenkins [3]などのブラウザテスト自動化、JiraのClover HTMLレポートなど)
使用例
スクリーンショットの例
たとえば、次のコマンド シーケンスは、仮想フレームバッファー X サーバーをディスプレイ:1として実行し、その上でプログラム (xclock) を実行し、xwd コマンドを使用して ファイルimage.xwdに仮想画面をキャプチャします。
Xvfb :1 & xclock -display :1 & xwd -display :1 -silent -root -out image.xwd
結果はxwudプログラム(xwud -in image.xwd)を実行することで表示できます。
プログラムxvfb-runは、利用可能なディスプレイを見つけて認証を管理するプロセスを自動化するためによく使用されます。
xvfb-runコマンド
SSH経由のリモートコントロール
Xvfbはリモートコントロールにも使用されます。VNC over SSHはX11 over SSHよりも高速であり、[4]特にインターネット経由の遅延が短縮されます。[5]この場合、Xvfb は軽量ウィンドウマネージャー ( FluxboxやOpenboxなど) と VNC サーバー(X11vncなど)と組み合わせられることがよくあります。サーバー上でこれを起動するためのコマンドのシーケンスは次のとおりです。
エクスポートDISPLAY = :1
Xvfb " $DISPLAY " -screen 0 1024x768x24 & fluxbox & x11vnc -display " $DISPLAY " -bg -nopw -listen localhost -xkb
次のステップは、ローカルホストのポート 5900 へのトンネリングを有効にしたPuTTYなどの SSH クライアントを起動することです。その後、vncviewer はローカルホストに接続してサーバーをリモート制御できるようになります。
ssh -N -T -L 5900 :localhost:5900 user@remotehost & vncviewer -encodings 'copyrect tight zrle hextile' localhost:5900
x11vnc のマニュアルページにも手順が記載されています。
Xvnc (x11vnc と混同しないでください) は Xvfb と非常によく似ています。
参照
参考文献
- ^ "904851 – xvfb-run glxinfo が失敗する". bugzilla.redhat.com .
-- chroot に mesa-dri-drivers がインストールされていない場合は、GLX も取得できないと思います。 -- ありがとうございます。役に立ちました。
- ^ 「Xvfb を使用してヘッドレスでテストを実行する方法 | Elemental Selenium」。elementalselenium.com。2024年 6 月 18 日。
- ^ “Xvfb”. plugins.jenkins.io . 2021年7月14日.
- ^ 「リモート X パフォーマンスの高速化」dav.lbl.gov。
- ^ 「VNC: X11 のより高速な代替手段 - HECC ナレッジ ベース」。www.nas.nasa.gov。
外部リンク
- Xvfb マニュアルページ
- Xvfb + Firefox – Xvfb とMozilla Firefox を使用して Web ページのスクリーンショットを自動的に作成する
- Xpra は、ダミー ドライバーを備えたプレーンな X11 サーバーを使用する Xvfb の代替です。
