initdのランレベル

initdのランレベル

initdの「ランレベル」の概要と説明

ランレベル (runlevel) は、Linux の init システム (initd) でシステムの動作モードを制御するために使用される概念です。Linux システムの起動プロセスでは、ランレベルが指定されることで、どのサービスやプロセスを起動するかが決定されます。

システムが起動すると、init プロセスは設定ファイル (/etc/inittab など) に基づいて適切なランレベルに移行します。各ランレベルは異なるシステム状態を表し、これによりシステムの運用モードを切り替えることができます。

ランレベルとは?

ランレベルは、システムの動作モードを表す数値で、0から6までの異なる状態を示します。各ランレベルは、システムが起動すべきサービスや停止すべきプロセスのセットを定義しています。これにより、シングルユーザーモード、マルチユーザーモード、GUI モードなど、異なる運用環境に簡単に切り替えることができます。

各ランレベルの概要

一般的な Linux システムでは、次のランレベルが定義されています。

  • ランレベル 0: システムの停止状態。システムをシャットダウンして電源を切るために使用されます。
  • ランレベル 1: シングルユーザーモード。管理者がシステムのメンテナンスや修復を行うために使用され、ネットワークサービスや他のユーザーは使用できません。
  • ランレベル 2: マルチユーザーモード(ネットワークなし)。複数のユーザーがログインできますが、ネットワークサービスは開始されません。
  • ランレベル 3: マルチユーザーモード(ネットワークあり)。複数のユーザーがログインでき、ネットワークサービスも有効です。通常のコマンドライン操作環境です。
  • ランレベル 4: カスタム設定。通常は未使用であり、システム管理者が独自に設定を行うために予約されています。
  • ランレベル 5: マルチユーザーモード(ネットワークと GUI あり)。ランレベル 3 に加えて、グラフィカルユーザーインターフェース (GUI) が起動します。
  • ランレベル 6: システムの再起動。システムを再起動するために使用されます。

ランレベルの切り替え

システム管理者は、システムのランレベルを切り替えることで、必要に応じてシステムの動作モードを変更することができます。通常、システムが起動する際にデフォルトのランレベルが設定されており、起動後に手動でランレベルを変更することも可能です。

例えば、ランレベル 5(GUI モード)で起動しているシステムを、ランレベル 3(コマンドラインモード)に切り替える場合は、init コマンドを使用して次のように行います:

# init 3

このコマンドにより、システムは GUI を停止し、コマンドラインモードに移行します。

ランレベルの設定

デフォルトのランレベルは、通常 /etc/inittab ファイルに記載されています。このファイルで指定されたランレベルに基づいてシステムが起動します。システム管理者は、inittab ファイルを編集してデフォルトのランレベルを変更することが可能です。

例えば、デフォルトのランレベルを 5(GUI モード)に設定するには、次のようなエントリを /etc/inittab ファイルに追加します:

id:5:initdefault:

これにより、システムは常にランレベル 5 で起動するようになります。

ランレベルと systemd との関係

近年、多くの Linux ディストリビューションでは、initd に代わり systemd がデフォルトの init システムとして採用されています。systemd ではランレベルの概念が「ターゲット (target)」という形式で表現されています。例えば、ランレベル 3 に相当するターゲットは multi-user.target、ランレベル 5 に相当するターゲットは graphical.target です。

まとめ

init システムにおけるランレベルは、Linux システムの動作モードを制御するための重要な仕組みです。ランレベルを使用することで、システム管理者はシングルユーザーモード、マルチユーザーモード、グラフィカルモード、さらにはシステムのシャットダウンや再起動など、さまざまなシステム状態を簡単に制御できます。現在では、多くのシステムで systemd が使用されていますが、ランレベルの概念は依然として重要な役割を果たしています。