サーバの起動と切替え

コンソールでの起動と切替え

コンソールから startx ないしは xinit で起動した場合、 デフォルトではディスプレイ番号 :0 で起動しようとする。 また、/etc/ttys で定義されている仮想端末数の次の番号を確保しようとする (tty が 4 つ定義されていれば、5 番目)。

X を起動したあとでもテキスト端末に切替えられる。 /etc/ttys で定義されているぶんだけ、 Ctl-Alt-Fx キーの組合せで、切り替わる (最初のテキスト端末(ttyv0)に戻るには Ctl-Alt-F1、 2番目のテキスト端末(ttyv1)に戻るならば Ctl-Alt-F2)。

テキスト端末から最初の X に切り戻すには、Alt-Fx キーを押す (tty が 4 つ定義されていれば、その次なので、Alt-F5)。

複数の X Window プロセスを起動することも可能。 例えば、1つめを 普通に startx なり xinit なりで起動したあと、 上記手順で仮想端末に戻ってさっきの X をバックグラウンドにしておいて、 さらに /usr/X11R6/bin/X -query remotehost :1 などとすれば 複数の X 画面を持つことができる。この時、さらに次の番号を確保しようとする。 (tty が 4 つ定義されていて、最初の X が 5 番目だとすると、6 番目)。

ここで作られた画面もやはり上記の通りホットキーにより切替え可能。 ただし、両画面を行き来するには、いったんテキスト仮想端末に戻る必要がある (tty が 4 つ定義されていて、 最初の X (5 番目) を使っているとすると、次の X (6 番目) に移動するためには Ctl-Alt-F1 でテキストの 1 番に行ってから Alt-F6 で切り替わる)。

Xnest の不思議な世界

Xnest を使うと、X window の中でもう一つ X window を使うことができるようになる。 Xnest は ports では x11-servers/xorg-nestserver/ から入れられる。 X Client でありながら X Server のように振る舞う不思議なアプリケーションである。 例えば以下の通り。

% Xnest -geometry 800x600 -query remotehost :1

こうなってくれると、いちいち別々に X を上げなくてもいいし、 ただの X のアプリケーションの1つとして扱えるので切替えも簡単であるし、 font の実験や Window Manager の実験などに便利である。 また、上記例のように起動時に -query で別マシンに繋ぐこともできるので、 普段使っているデスクトップをサクっとそのまま X 端末扱いにすることもできる。

Xvnc で切り離せる X

Xvnc は一言で言うと 「Attach/Detach の可能な X サーバ」 である。 Attach/Detach には vnc viewer が必要だが、 ビューアは事実上プラットフォームに縛られない。

サーバは専用の起動スクリプトで起動する。 $HOME/.vnc/xstartup によって起動時に X クライアントや Window Manager を 自動起動できる。

% vncserver -geometry 800x600

無事起動すると、ディスプレイ番号が出力されるはずだ (ちなみに windows で vnc server を上げると、 ディスプレイ番号は :0 になる)。 ビューアはこの番号に向かって接続することになる。 :1 で vnc server が上がっているなら、ビューアの接続先は以下の通り。

% vncviewer xxx.xxx.xxx.xxx:1

終了時にも起動時に使用した専用スクリプトを使用する。 どんな X クライアントがぶら下がっていようが サクっと kill されるので注意。

% vncserver -kill :1
[$Revision: 1.2 $ $Date: 2005.11.16 18:57:07 $]
[EOF]