Linuxにはランレベルと呼ばれる動作モードがあります。ランレベルには0か ら6まであり、通常はランレベル3または5で動作しています。各ランレベルの意 味は次のとおりです。
■ 表 ランレベル
ランレベル 説明
0 システムの停止
1 テキスト・シングルユーザーモード。システムメンテナンスで使用する
S テキスト・シングルユーザーモード。ランレベル1と違い、/etc/inittabファイル を参照しない
2 テキスト・マルチユーザーモード。NFSが使用不可 3 テキスト・マルチユーザーモード
4 予約
5 グラフィカル・マルチユーザーモード。ログイン時にX Window Systemが起動 6 システムの再起動
※ シングルユーザーモードでは root だけがシステムにアクセスでき、マルチユーザーモードでは複 数のユーザーが同時にシステムにアクセスできます。
※ NFS とは、Linux のファイル共有機能のことです。
ランレベルを変更するにはinitコマンドを使用します。次のコマンドはランレ ベルを3に変更しています。
# init 3
telinitコマンドも、initコマンドと同様の働きをします。
telinitコマンドではさらに、telinit qコマンドを実行することで/etc/inittabファ イルを再度読み込み、内容に変更があった場合にはその変更を反映させることが
第 1章システム構成 できます。
/etc/inittabファイル
/etc/inittabファイルにはランレベルごとに起動するプロセスなど、initコマ ンドが実行する処理内容が記述されています。
id:5:initdefault:
si::sysinit:/etc/rc.d/rc.sysinit l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
(省略)
l6:6:wait:/etc/rc.d/rc 6
ca::ctrlaltdel:/sbin/shutdown -t3 -r now 1:2345:respawn:/sbin/mingetty tty1
(省略)
6:2345:respawn:/sbin/mingetty tty6 x:5:respawn:/etc/X11/prefdm -nodaemon
■
図 /etc/inittab 設定ファイル(一部抜粋)/etc/inittabファイル内は、1行で1つの処理が記述されています。記述形式は 次のとおりです。
【書式】
<IDタグ>:<ランレベル>:<アクション>:<プロセス>
■ 表 /etc/inittab ファイルの書式
パラメータ 説明
IDタグ 他の行と区別するための識別子。2文字以内であれば任意の文字でよい ランレベル 指定した設定が有効になるランレベル
アクション プロセスを実行する条件やタイミング プロセス 実行するプロセス
■ 表 主なアクション
アクション 内容
sysinit システム起動時に実行
respawn プロセスを起動し、終了したら同じプロセスを再起動する initdefault デフォルトのランレベルの指定
wait プロセスを起動し、その終了を待つ
/etc/inittabファイルの内容をみていきましょう。
id:5:initdefault:
デフォルトのランレベルを5に指定しています。ここにランレベル0と6を指定 してはいけません。システムが起動しなくなります。
si::sysinit:/etc/rc.d/rc.sysinit
システム起動時に/etc/rc.d/rc.sysinitスクリプトを実行しています。
rc.sysinitスクリプトはホスト名の設定、udevによる/devの初期化、日時の設定、
カーネルパラメータの設定などシステム全体の初期化を行います。
l1:1:wait:/etc/rc.d/rc 1
ランレベル1のときに引数「1」が与えられた/etc/rc.d/rcスクリプトを実行 し、実行が終了するまで待機します。
rcスクリプトはランレベルを表す引数「1」が与えられると、/etc/rc.d/rc1.d ディレクトリにあるスクリプトを実行します。/etc/rc.d/ディレクトリには、ラ ンレベルごとにrc0.dからrc6.dまでのディレクトリが用意されています。
/etc/rc.d/rc1.dディレクトリ内のファイルは次のようなものがあります。
K01dnsmasq K02NetworkManager K05anacron S02lvm2-monitor S06cpuspeed S99single
■
図 /etc/rc.d/rc1.d/ ディレクトリ内にあるファイル(一部抜粋)各ファイルは「K」または「S」+「2ケタの数値」+「実行するスクリプトファイ ル」となっています。先頭のK(Kill)は停止を表し、S(Start)は起動を表します。
第 1章システム構成 また、2桁の数字は実行する順番を表しています。まずKの小さな数値から大き な数値へとサービスを停止し、その後Sの小さな数値から大きな数値へとサービ スを開始します。サービスとはメモリーに常駐してさまざまなサービスを提供す るプログラムのことで、バックグラウンドで動作しているため、通常はユーザー が操作することはありません。サービスのことをデーモンともいいます。
次に、「実行するスクリプトファイル」は/etc/rc.d/init.d/ディレクトリ以下 にあります。たとえば、K05anacronであれば、/etc/rc.d/init.d/ディレクトリに anacronスクリプトファイルがあり、「K」が先頭についているのでstopの引数を つけてスクリプトファイルを実行しサービスを停止します。反対にS99singleで あれば、singleスクリプトファイルをstartの引数をつけて実行しサービスを開始 します。
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
Ctrl+Alt+Deleteキーが同時に押されたときに、「shutdown -t3 -r now」コマン ドを実行します。shutdownコマンドは後述します。
1:2345:respawn:/sbin/mingetty tty1
ランレベルが2、3、4、5のいずれかのときに、「/sbin/mingetty tty1」を実行 します。終了した場合は自動で再起動します。
mingettyコマンドは仮想コンソール(仮想端末)を起動するコマンドです。
コンソール(端末)とはディスプレイとキーボードのセットのことで、入出力専 用の装置をいいます。昔のコンピュータは非常に高価だったため、1台のコン ピュータに複数台の端末を接続してユーザー間で共有していました。
現在のコンピュータには通常1組の端末しかついていません。仮想コンソール とは、1組の端末上でAltキーと「F1」〜「F6」キーを同時に押すことで制御画面 を切り替え、それぞれの画面で別々の処理を行えるようにした機能のことです。
各制御画面で異なるユーザーでログインし、操作することも可能です。通常は tty1 〜 tty6の6つの仮想コンソールが利用できます。
x:5:respawn:/etc/X11/prefdm -nodaemon
ランレベルが5のときにX Window Systemを起動します。終了した場合は 自動で再起動します。
chkconfigコマンド
chkconfigコマンドは、/etc/rc?.d(または/etc/rc.d/rc?.d。「?」には0 〜 6 までの数値が入ります)ディレクトリ以下にあるファイルの作成・変更・削除、
およびサービスの起動や停止に関する設定を行うことができます。
ランレベルごとにどのサービスが起動し、どのサービスが停止するのかを表示 するには、chkconfig --listコマンドを使用します。
【書式】
chkconfig --list [サービス名]
■ 表 chkconfig コマンドのオプション --list サービスの一覧を表示 --level ランレベルの指定
--add サービスの追加 --del サービスの削除
サービス名を省略した場合は、すべてのサービスの一覧が表示されます。
# chkconfig --list
NetworkManager 0:off 1:off 2:off 3:off 4:off 5:off 6:off acpid 0:off 1:off 2:on 3:on 4:on 5:on 6:off anacron 0:off 1:off 2:on 3:on 4:on 5:on 6:off apmd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
(以下略)
たとえば、anacronというサービスはランレベル0、1、6で起動せず、2 〜 5 で起動することがわかります。
chkconfigコマンドはサービスが起動するランレベルを編集することもできま す。次の例では、offフラグを使って、anacronサービスがランレベル2と4で起動 しないように設定しています。
第 1章システム構成
# chkconfig --level 24 anacron off
# chkconfig --list anacron
anacron 0:off 1:off 2:off 3:on 4:off 5:on 6:off
次の例では、onフラグを使ってanacronサービスがランレベル2で起動するよ うに設定しています。
# chkconfig --level 2 anacron on
# chkconfig --list anacron
anacron 0:off 1:off 2:on 3:on 4:off 5:on 6:off
サービスの起動状態を初期設定に戻したいときにはresetフラグを使用しま す。
# chkconfig anacron reset
# chkconfig --list anacron
anacron 0:off 1:off 2:on 3:on 4:on 5:on 6:off
サービスをchkconfigコマンドの管理対象から外したいときは、--delオプショ ンを使用します。
# chkconfig --del anacron
# chkconfig --list anacron
(表示されない)
反対に、サービスをchkconfigコマンドの管理対象に追加したいときには、
--addオプションを使用します。
# chkconfig --add anacron
現在のランレベルの表示
現在のランレベルを表示するには、runlevelコマンドを使用します。
# runlevel N 5
先頭の文字は以前のランレベルを表します。「N」になっている場合は、シス
テムが起動してから一度もランレベルを変更していないことを表します。2番目 の文字は現在のランレベルを表します。