システム起動スクリプト
カーネルが起動した後は、まず最初に"/sbin/init"が実行されます。"/sbin/init"は、"/etc/inittab"の設定に 従って各種プロセスを起動させます。このように、システム起動時に自動的に起動されるスクリプトがシステム起動スクリプトであり、rcスクリプトや initスクリプトともいわれます。
起動スクリプトだけではなく、デーモン起動スクリプトもrcスクリプトやinitスクリプトといわれる場合があり、混乱のもととなっています。その ため本連載では、すべてのランレベルで共通して必要な起動スクリプトを「システム起動スクリプト」と呼び、各ランレベルごとで自動的に実行される起動スク リプトや、システム起動後にユーザが手動で実行する起動スクリプトのことを、「デーモン起動スクリプト」と呼ぶことにします。
これらの各種起動スクリプトが配置されるディレクトリは、RHEL4とSLES9で異なります。これは、運用時に混乱する大きな原因となりますので、よく理解する必要があります。
| RHEL4 | SLES9 | |
|---|---|---|
| /etc/init.d/ | デーモン起動スクリプト(手動) (/etc/rc.d/init.d/へのリンク) |
システム起動スクリプト デーモン起動スクリプト(手動) (ディレクトリ実体) |
| /etc/init.d/rc[0-6].d/ | (存在しません) | デーモン起動スクリプト(ランレベルごと) (ディレクトリ実体) |
| /etc/rc.d/ | システム起動スクリプト | システム起動スクリプト デーモン起動スクリプト(手動) (/etc/init.d/へのリンク) |
| /etc/rc.d/init.d/ (ディレクトリ実体) |
(存在しません) | |
| /etc/rc.d/rc[0-6].d/ | デーモン起動スクリプト(ランレベルごと) | デーモン起動スクリプト(ランレベルごと) (/etc/init.d/rc[0-6].d/へのリンク) |
"/sbin/init"が実行されたあとは、すべてのランレベルに共通して以下のスクリプトが最初に起動されます。
| RHEL4 | SLES9 | |
|---|---|---|
| 最初の起動スクリプト | /etc/rc.d/rc.sysinit | /etc/init.d/boot |
SLES9では"/etc/init.d/boot"を実行すると、さらに"/etc/init.d/boot.d/"ディレクトリ以下にあるファイル名"Sxxboot.xxx"のスクリプトが続いて起動します。
また、以下のスクリプトもランレベルにかかわらず、システム起動時に毎回必ず起動します。ユーザが起動時に実行させるコマンドなどはこのスクリプトに登録するのが一般的です。
| RHEL4 | SLES9 | |
|---|---|---|
| ランレベル共通実行スクリプト | /etc/rc.d/rc.local | /etc/init.d/boot.local |
ランレベル
システム起動スクリプトが実装された後は、各ランレベルに対応した処理が実行されます。ここでまず、ランレベルについて解説します。
ランレベルとは、オペレーティングシステムの起動状態のモードをあらわす概念です。一般的なLinuxディストリビューションでは、0から6までの7つのシステム状態がランレベルとして定義されています。
| ランレベル | システム状態 |
|---|---|
| 0 | システム停止 |
| 1 | シングルユーザモード |
| 2 | ローカルマルチユーザモード(NFSなどはなし) |
| 3 | フルマルチユーザモード(テキストコンソール) |
| 4 | 未使用 |
| 5 | フルマルチユーザモード(グラフィカル環境) |
| 6 | システム再起動 |
RHEL4とSLES9は表4の7つのランレベルを持っています。ランレベル0および6はシステムが稼働している状態ではないので、システム起動時 に移行するランレベルは1から5のいずれかになります。通常はランレベル3かランレベル5が使用され、ランレベル3と5の違いは、デフォルトの状態が CUI(レベル3)かGUI(レベル5)かの違いです。
ただ、ランレベル3でも"startx"コマンドによりGUIを利用することが可能です。以前はGUIが不安定だったため、ランレベル5でのサーバ 運用はあまり推奨されていませんでした。現在のGUIはかなり安定していますが、システムリソースを余分に消費しますので、やはりランレベル3でのサーバ 運用を推奨します。
ランレベル1のシングルユーザモードはバックアップ時などに使用するモードです。バックアップ時に他のユーザがファイル操作をするとバックアップの 整合性を保てなくなります。また、SLES9ではランレベル1ではなく、ランレベルSというシングルユーザモード用の設定ファイルも、別途用意されていま す。