7.5. ランレベルと X

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

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

次ぎのサブセクションでは、X がランレベル3 及びランレベル5 でどのようにスタートするかを説明します。

7.5.1. ランレベル 3

ランレベル 3にいる時、X のセッションを開始する最善の方法は、ログインしてstartxと入力することです。startxコマンドはxinitコマンドへのフロントエンドであり、Xサーバー(Xorg)を起動してそれを 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/ディレクトリのスクリプトの実行が含まれます。

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

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

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

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