Solaris のシステム管理

/etc/inittab ファイル

init または shutdown コマンドを使用してシステムをブートしたり実行レベルを変更したりすると、init デーモンは、/etc/inittab ファイルから情報を読み取ってプロセスを起動します。/etc/inittab ファイルには、init プロセスにとって重要な 3 つの情報が定義されています。

/etc/inittab ファイル内の各エントリは、次のフィールドからなります。

id:rstate:action:process

表 6-2 に、inittab エントリの各フィールドを要約します。

表 6-2 inittab ファイルのフィールド

フィールド 

説明 

id

エントリの一意な識別子。 

rstate

実行レベル。実行されるコマンドまたはスクリプトに対応する。 

action

次のプロセスフィールドに指定されたプロセスの実行方法。 

process

実行するプロセス (またはコマンド) の名前。 

例 - デフォルトの inittab ファイル

以下の例は、デフォルトの inittab ファイルに注釈を付けたものです。

 [STREAMS モジュールの初期化] ap::sysinit:/sbin/autopush -f /etc/iu.ap
 [socket により使用されるトランスポートプロバイダを構成する。sock2path ファイルにはプロバイダマップを転送するソケットが含まれる。] ap::sysinit:/sbin/soconfig -f /etc/sock2path
 [ファイルシステムのチェック] fs::sysinit:/sbin/rcS  >/dev/console 2>&1 </dev/console
 [デフォルトの実行レベル] is:3:initdefault:
 [電源切断によるシャットダウン] p3:s1234:powerfail:/sbin/shutdown -y -i5 -g0 >/dev/console 2>&1 </dev/console
 [実行レベル 0] s0:0:wait:/sbin/rc0 >/dev/console 2>&1 </dev/console
 [実行レベル 2] s1:1:wait:/sbin/shutdown -y -iS -g0 >/dev/console 2>&1 </dev/console
 [実行レベル 3] s2:23:wait:/sbin/rc2 >/dev/console 2>&1 </dev/console
 [実行レベル 1] s3:3:wait:/sbin/rc3 >/dev/console 2>&1 </dev/console
 [実行レベル 5] s5:5:wait:/sbin/rc5 >/dev/console 2>&1 </dev/console
 [実行レベル 6] s6:6:wait:/sbin/rc6 >/dev/console 2>&1 </dev/console
 [ファームウェア] fw:0:wait:/sbin/uadmin 2 0 >/dev/console 2>&1 </dev/console
 [オフ] of:5:wait:/sbin/uadmin 2 6 >/dev/console 2>&1 </dev/console
 [リブート] rb:6:wait:/sbin/uadmin 2 1 >/dev/console 2>&1
 [サービスアクセスコントローラの初期化] sc:234:respawn:/usr/lib/saf/sac -t 300
 [コンソールの初期化] co:234:respawn:/usr/lib/saf/ttymon -g -h -p "`uname -n` console  login: " 
-T terminal_type -d /dev/console -l console -m ldterm,ttcompat

システムが実行レベル 3 になると実行される処理

  1. init プロセスが起動されます。init プロセスは、/etc/default/init ファイルを読み取って環境変数を設定します。デフォルトでは、TIMEZONE 変数だけが設定されます。

  2. initinittab ファイルを読み取って、次の処理を行います。

    1. デフォルトの実行レベル 3 を定義する initdefault エントリを識別します。

    2. action フィールドが sysinit になっているすべてのプロセスエントリを実行して、ユーザーがログインする前に特別な初期設定処理がすべて行われるようにします。

    3. rstate フィールドが 3 になっている (デフォルトの実行レベル 3 と一致する) プロセスエントリを実行します。

      init プロセスが inittab ファイルを使用する方法についての詳細は、init(1M) のマニュアルページを参照してください。

      実行レベル 3 の action フィールドで使用するキーワードについては、表 6-3 で説明します。

      表 6-3 実行レベル 3 の action キーワードの説明

      キーワード 

      指定されたプロセスの実行方法 

      powerfail

      システムが電源切断シグナルを受信したときだけプロセスを実行する。 

      wait

      指定されたプロセスの終了を待つ。 

      respawn

      プロセスがまだ起動されていない場合は起動する。プロセスがすでに起動されている場合は、inittab ファイルの検索を続ける。

実行レベル 3 で実行されるプロセス (またはコマンド) については、表 6-4 で説明します。

表 6-4 実行レベル 3 のコマンドの説明

コマンドまたはスクリプト名 

説明 

/usr/sbin/shutdown

システムをシャットダウンする。init プロセスは、システムが powerfail シグナルを受信したときだけ shutdown コマンドを実行する。

/sbin/rc2

時間帯を設定してから、標準のシステムプロセスを起動して、システムを実行レベル 2 (マルチユーザーモード) に移行する。 

/sbin/rc3

実行レベル 3 で使用する NFS 資源共有を開始する。 

/usr/lib/saf/sac -t 30

ポートモニターと UUCP 用のネットワークアクセスを起動する。このプロセスは失敗すると再起動される。 

/usr/lib/saf/ttymon -g -h -p "`uname -n` console login: " -T terminal_type -d /dev/console -l console

コンソールでのログイン要求を監視する ttymon プロセスを起動する。

このプロセスは失敗すると再起動される。SPARC システムの terminal_typesun である。

x86 システムの terminal_typeAT386 である。