Xvfb


概要

  • 仮想的に unix マシン内にディスプレイを作成するための機構.
  • メモリ上にディスプレイがあるイメージ.
  • X 環境では,DISPLAY 環境変数によって,実際のディスプレイと仮想ディスプレイは切替が可能.
  • ターミナルにおける screen のような使い方が可能になる.

インストール on FreeBSD 9.0 Release

  • ports で x11-servers/xorg-vfbserver をインストール.

仮想スクリーンの起動方法

Xvfb :1 -screen 0 1024x768x24 > /dev/null & 
  • :1 は,X のディスプレイサーバの番号.
  • -screen 0 はディスプレイサーバに紐づくスクリーン番号.
  • X11 では,サーバもスクリーンも複数制御できるため,その番号を指定する 必要がある.
  • 参考 URL
  • 上記コマンドで,1024x768 の 24bit カラーなディスプレイを仮想的に作成できる.

利用例

vnc 経由で仮想ディスプレイを操作する

x11 server のインストール

  • net/x11vnc を ports でインストール
  • サーバ番号 1,スクリーン番号 0 で立ち上げる
    x11vnc -display :1 -bg -nopw -listen localhost -xkb 
    • -display: サーバ番号の指定.
    • -bg:バックグラウンド
    • -nopw:パスワードなし
    • -listen localhost:ローカルホストからのみの接続を許可
    • -xkb:多分キーボード.

vncviewer のインストールから接続

  • net/vnc を ports でインストール
  • 接続
    % vncviewer localhost 
    • 注意:vncviewer は X のアプリケーションなので,ちゃんと起動できるようにすること.

firefox を Xvfb 上で起動し,スクリーンショットをとる

概要

  • firefox は,ディスプレイサーバを指定して起動できるオプションがある.
  • また,コマンドラインから URL を叩く方法も存在する.
  • これを利用すると,コマンドラインからいろいろなサイトを開きスクリーンショットをとることが可能になる

起動

% firefox -display :1 -remote "openurl(http://www.tsukune.org/)"
  • -display:ディスプレイサーバ1番.
  • -remote "openurl(http://www.tsukune.org/)": 指定 URL をタブで開く.
    • 以下参考の所の mozilla コマンドラインを見ると,いくつか載っている.
    • -remote openurl だと,新しいタブが延々と開くので,vnc 経由で接続し,新しいタブを開かないように preference から設定する方が良い.

スクリーンショット

  • ImageMagick? 附属の import コマンドを利用.
    % import  -display :1 -window root test.jpg 
  • -display :1:1 番のウィンドウサーバを利用
  • -window root:window id または名前を指定.root は多分全画面,の意味だと思う.
  • test.jpg:出力ファイル名

その他

  • 上記の方法だと,アプリケーションを起動すると全画面で表示される.これは window manager を入れていないから.fvwm なり twm なりを起動すれば window が存在するように見せられるが,vnc 経由での操作になるし対して意味はないと思う.

参考

コマンドラインで display 指定できない場合

  • 環境変数 DISPLAY を設定すればよい。
    例)
    export DISPLAY=1:0

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-10-27 (金) 17:24:48 (82d)