Xvfb 仮想フレームバッファ・サーバ

VNC をいじったついでに,かねてからやろうやろうと思っていた Xvfb の導入もやった。Xvfb はディスプレイのないサーバ機などで X Window System の画面入出力をシミュレートする X11 のサーバ・ソフトウェアである。例えば,あるサイトのリンクにそのページ画面のサムネイル画像を掲げているのをよく目にするが,これをサーバで自動的にやろうとすると,JavaServlet などでサイトのページを取得し,ブラウザと同様にレンダリングし,画面イメージを生成するわけだ。このとき Awt などの「ディスプレイ」の存在を仮定するライブラリを使うのが常である。そこで,ディスプレイ・レスの UNIX サーバ機でもそれをエミュレートする,仮想フレームバッファなるインタフェースを提供するのが Xvfb である。

私はサイト・ページのアクセスカウンタを自作の JavaServlet WebCountServlet で取得している。このサーブレットは,カウンタ画像を生成する関係で Java Awt クラスライブラリを使っており,ディスプレイ環境を必要とする。これまで,普通にメインコンソールで X11 を起動して使っていたのだけれど,Tomcat 再起動のたびにディスプレイのある場所に行かねばならなかった(というのも,Tomcat が DISPLAY:0.0 を当て込んでいるので,:0.0 の端末から操作しなければならなかったから)。リソース的にも X11 を常駐させるのは好ましくなかった。Xvfb ならこのあたりの不都合が減らせる。

FreeBSD の ports を使って Xvfb をインストールした。cd /usr/ports/x11-servers/xorg-vfbserver && make install clean で完了。

# Xvfb :5 -screen 0 1024x768x24 &

を投入して Xvfb サーバを起動させておき,Tomcat が参照する環境変数 DISPLAY に,この場合は :5.0 を設定しておけばよい。通常はディスプレイ.スクリーン番号を :1.0 とするようだが,うちでは ssh,VNC その他でもアクセスするので,:5.0 とした。私のように FreeBSD Tomcat5.5 で使うなら,Tomcat 起動スクリプト /usr/local/etc/rc.d/tomcat55 のどこか,起動時に動く関数のはじめのほうに,次を入れておくとよいと思う。各オペランド指定の仕方は man Xvfb で確認いただきたい。

DISPLAY=:5.0
export DISPLAY
/usr/local/bin/Xvfb :5 -screen 0 1024x768x24 > /dev/null 2> /dev/null &

サーバ設置場所に行かなくても,Tomcat 再起動の必要な作業を書斎(自称)でできるようになったのが,私にとっては何よりうれしい。

Moon Calendar

Profile

ISAO YASUDA。システムエンジニア。神奈川県在住。昭和 30 年代を懐かしむオヤジ。ロシアに興味があります。
[more], [About our site]

Notice

この文書はフィクションであり,実在する個人,団体等とは一切関係ありません。

R-18 指定サイトです。そのうち「18 歳以上ですか」の認証を入れる予定です。

文書の記述内容は無保証です。不適切な表現があればコメントにてご指摘ください。

コメント,トラックバックは,現在,運用を停止しています。ご意見等ありましたら isao@yasuda.homeip.net 宛電子メールにてお願いします。

Links

Entries

About this entry

Written by isao at 2010年4月25日 23:08.

Previous: VNC の利用

Next: 小沢さん「起訴相当」

Recent Entries in Main Index.
All Entries in Archive Index.

March 2012

Sun Mon Tue Wed Thu Fri Sat
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

Emacs: Monthly Archives

Powered by Movable Type 5.12 Powered by FreeBSD 8.2-RELEASE
blog counter