7.5. ランレベルと XFree86

殆どの場合、Red Hat Enterprise 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メニューアイテムから (メインメニュー ボタン[パネル上] =>個人設定 => 他の個人設定 => セッションと進んでアクセスする)選択してどのデスクトップ環境を利用 するか指定することができます。ディスプレイマネージャ内でデスクトップ環境が 指定されない場合、/etc/X11/xdm/Xsessionスクリプトがユーザーのホーム ディレクトリにある .xsessionファイルと.Xclients ファイルをチェックして、ロードするデスクトップ環境を判定します。最後の手段としては、ランレベル 3 と同様に、/etc/X11/xinit/Xclientsファイルを使用して、 利用するデスクトップ環境、またはウィンドウマネージャを選択します。

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

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

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