7.5. ランレベルと XFree86

殆どの場合、Red Hat Linuxのデフォルトインストールは、ランレベル 5 として知られる グラフィカルログイン環境で起動するようにマシンを設定します。しかし、 ランレベル 3 と呼ばれる、テキストのみの複数ユーザーモードで起動して そこからX のセッションを開始することも可能です。

ランレベルに関する詳細は 項1.4で御覧下さい。

このセクションは、XFree86がどのようにランレベル3 とランレベル5 でスタート するかを説明していきます。

7.5.1. ランレベル 3

ランレベル 3にいる時、X のセッションを開始する最善の方法は、ログインして startxと入力することです。startxコマンドは xinitコマンドへのフロントエンドであり、XFree86サーバーを起動して それをX クライアントアプリケーションと繋ます。ユーザーはすでにシステムにランレベル 3で ログインしている為、startxはディスプレイマネージャを起動したり、 ユーザーを認証したりしません。ディスプレイマネージャに関する詳細は項7.5.2でお読み下さい。

startxコマンドが実行される時、それは、ユーザーのホームディレクトリ内の .xinitrcファイルを検索してデスクトップ環境と、そして他の X クライアントアプリケーションを実行するように定義します。.xinitrcファイルが ない場合、システムデフォルトの/etc/X11/xinit/xinitrcファイルを代わりに 使用します。

デフォルトのxinitrcスクリプトは、その後ユーザーのホーム ディレクトリ内で.Xresources.Xmodmap、及び .Xkbmapや、さらに/etc/X11/ディレクトリ内の XresourcesXmodmap、及び Xkbmapを含むユーザー定義のファイルやデフォルトのシステムファイルを 探します。存在していれば、XmodmapXkbmapは、 xmodmapユーティリティに使用されて、キーボードを設定します。 Xresourcesファイルが、アプリケーションへの特定のユーザー設定値を 割り当てる為に読み込まれます。

これらのオプションの設定のあとは、xinitrcスクリプトが /etc/X11/xinit/xinitrc.d/ディレクトリに置かれている 全てのスクリプトを実行します。このディレクトリの重要なスクリプトの1つは デフォルト言語の設定などの構成をするxinputです。

次にxinitrcスクリプトは、ユーザーのホームディレクトリ内の .Xclientsを実行しようとして、それがない場合には /etc/X11/xinit/Xclientsへ向かいます。Xclientsの 目的は、デスクトップ環境を、または単に基本のウィンドウマネージャを 起動するためです。ユーザーのホームディレクトリ内の.Xclients スクリプトは.Xclients-defaultファイルにあるユーザー指定の デスクトップ環境を起動します。ユーザーのホームディレクトリ内に.Xclientsが なければ、標準の/etc/X11/init/Xclientsスクリプトがもう1つのデスクトップ環境を 開始する試みをします。GNOMEを最初に試し、次にKDE、そしてtwmと続きます。

ランレベル 3でのX のログアウトをした後では、ユーザーはテキストモードの ユーザーセッションに戻ります。

7.5.2. ランレベル 5

システムがランレベル 5で起動する時、ディスプレイマネージャと呼ばれる 特殊なX クライアントアプリケーションが起動します。ユーザーは、デスクトップ 環境、又はウィンドウマネージャが起動する前に、ディスプレイマネージャを 使用して認証する必要があります。

システム上にインストールされているデスクトップ環境によっては 3種類のディスプレイマネージャがユーザー認証に利用できます。

ランレベル 5 でブートする時、prefdmスクリプトは /etc/sysconfig/desktopファイルを参照することにより、 好みのディスプレイマネージャを決定します。このファイルに利用できるオプションの リストに付いては、/usr/share/doc/initscripts-<version-number> /sysconfig.txtファイル(<version-number>には initscriptsパッケージのバージョン番号が入ります。)を参照して下さい。

それぞれのディスプレイマネージャは/etc/X11/xdm/Xsetup_0を 参照して、ログイン画面をセットします。ユーザーがシステムにログインすると、 /etc/X11/xdm/GiveConsoleスクリプトが実行され、コンソールの 所有者をユーザーに割り当てます。その後、/etc/X11/xdm/Xsession スクリプトが実行されて、通常はランレベル 3 からX をスタートする時にxinitrc スクリプトにより実践される多くのタスクが達成されます。これにはシステムとユーザーリソースの 設定、及び /etc/X11/xinit/xinitrc.d/ディレクトリのスクリプトの実行が 含まれます。

ユーザーは、gdm又はkdmのディスプレイマネージャを 使って認証をする時、Sessionメニューから(パネル上のメインメニュー ボタン =>個人設定 => More Preferences => セッションと進んでアクセスできます。)選択して使用する デスクトップ環境を指定することができます。ディスプレイマネージャ内でデスクトップ環境が 指定されない場合、/etc/X11/xdm/Xsessionスクリプトがユーザーのホーム ディレクトリにある .xsessionファイルと.Xclients ファイルをチェックして、どちらのデスクトップ環境をロードするか判定します。最後の手段として ランレベル 3 と同様に、/etc/X11/xinit/Xclientsファイルを使用して 1つのデスクトップ環境、またはウィンドウマネージャが選択されます。

デフォルトのディスプレイ(:0)でXセッションを終了し、ログアウトするときは、/etc/X11/xdm/TakeConsoleスクリプトが実行し、コンソールの所有権をルートユーザーに再度割り当てます。ユーザーがログインした後、実行を続けていたオリジナルのディスプレイユーザーは、新しいディスプレイマネージャを生成します。これにより、XFree86サーバーが再起動し、新規ログインウィンドウを表示して再度プロセス全体を起動します。

ユーザーがランレベル 5からX のログアウトをすると、ディスプレイマネージャに 戻ります。

ディスプレイマネージャがユーザー認証を行う方法にかんしては /usr/share/doc/gdm-<version-number>/README (この<version-number>にはインストールされている gdmパッケージのバージョン番号が入ります)とxdmの manページを参照して下さい。