実行レベルの動作
システムの実行レベル (init 状態としても知られる) は、ユーザーが使用できるサービスおよびリソースを定義します。システムが一度に持つことのできる実行レベルは 1 つだけです。
Oracle Solaris には、次の表で説明する 8 つの実行レベルがあります。デフォルトの実行レベル 3 は、/etc/inittab ファイルに指定されています。
表 4-1 Oracle Solaris の実行レベル | | | |
0
| 電源切断状態
| 電源切断
| オペレーティングシステムをシャットダウンして、システムの電源を安全に落とせるようにします。
|
|
|
| シングルユーザー
| 一部のファイルシステムがマウントされ使用可能な状態で、シングルユーザーとして動作します。
|
1
| 管理状態
| シングルユーザー
| すべての使用可能なファイルシステムにアクセスします。ユーザーログインは使用できません。
|
2
| マルチユーザー状態
| マルチユーザー
| 通常の運用に使用します。複数のユーザーがシステムとすべてのファイルシステムにアクセスできます。NFS サーバーデーモンを除く、すべてのデーモンが動作します。
|
3
|
| マルチユーザー
| NFS リソースを共有する通常の運用に使用します。これがデフォルトの実行レベルです。
|
4
| マルチユーザー状態 (予備)
| マルチユーザー
| デフォルトでは構成されていませんが、顧客用に使用できます。
|
5
| 電源切断状態
| 電源切断
| オペレーティングシステムをシャットダウンしてシステムの電源を安全に落とせるようにします。可能であれば、この機能をサポートしているシステムでは電源を自動的に切断します。
|
6
| リブート状態
| リブート
| オペレーティングシステムを停止し、/etc/inittab ファイルの initdefault エントリに定義されている状態にリブートします。 SMF サービス svc:/system/boot-config:default はデフォルトで有効になっています。 config/fastreboot_default プロパティーが true に設定されている場合に init 6 を指定すると、システムの特定の機能に応じて、特定のファームウェア初期化手順およびテスト手順が省略されます。 リブートプロセスの高速化を参照してください。
|
|
また、svcadm コマンドを使用してシステムの実行レベルを変更することもできます。その場合は、実行するときのマイルストーンを選択してください。次の表に、各マイルストーンに対応する実行レベルを示します。
表 4-2 実行レベルと SMF マイルストーン | |
S
| milestone/single-user:default
|
2
| milestone/multi-user:default
|
3
| milestone/multi-user-server:default
|
|
システムがマルチユーザー状態 (実行レベル 3) にブートされたときの処理
init プロセスが開始され、環境変数を設定するために svc:/system/environment:init SMF サービス内に定義されているプロパティーを読み取ります。デフォルトでは、TIMEZONE 変数だけが設定されます。
init は inittab ファイルを読み取り、次の処理を行います。
action フィールドが sysinit になっているすべてのプロセスエントリを実行して、ユーザーがシステムにログインする前に特殊な初期化がすべて行われるようにします。
起動アクティビティーを svc.startd に渡します。
init プロセスが inittab ファイルを使用する方法についての詳細は、init(1M)のマニュアルページを参照してください。
実行レベルとマイルストーンの使い分け
一般に、マイルストーンまたは実行レベルを変更する手順はめったに実行されません。必要な場合、実行レベルを変更するために init コマンドを使用するとマイルストーンも変更され、これは使用するのに適切なコマンドです。init コマンドはまた、システムをシャットダウンするのにも適しています。
ただし、none マイルストーンを使用してシステムをブートすると、起動時の問題をデバッグするときに非常に役立つ場合があります。none マイルストーンと同等の実行レベルはありません。詳細は、Oracle Solaris 11.2 でのシステムサービスの管理
のシステムブート時のサービスの起動に関する問題を調査する方法を参照してください。
システムの現在の実行レベルの確認
システムの現在の実行レベルを確認するには、who -r コマンドを使用します。
使用例 4-11 システムの実行レベルを確認する
who –r コマンドの出力には、システムの現在の実行レベルと、以前の実行レベルに関する情報が表示されます。
$ who -r
. run-level 3 Dec 13 10:10 3 0 S
$
| |
run-level 3
| 現在の実行レベル
|
Dec 13 10:10
| 実行レベルが最後に変更された日時
|
3
| 現在の実行レベル
|
0
| 最後にリブートしてからシステムがこの実行レベルになった回数
|
S
| 以前の実行レベルを識別します
|
|