26.4. ランレベル (Run Level)とは

ランレベルとはシステムの状態のことです。Linuxでは以下のランレベル0から6まで定義されており、ランレベルを変更することによってシステムの状態を変えることができます。各種サービスはランレベルに応じて起動されます。

  • ランレベル 0 : システムの停止

  • ランレベル 1 : シングルユーザモード

  • ランレベル 2 : マルチユーザモード (NFSマウントなし)

  • ランレベル 3 : マルチユーザモード (通常 : コンソールログイン)

  • ランレベル 4 : 未使用

  • ランレベル 5 : マルチユーザモード (通常 : ディスプレイマネージャ使用)

  • ランレベル 6 : システムの再起動

現在のランレベルを確認するには runlevelコマンドを用います。

# /sbin/runlevel
N 5

左側に一つ前のランレベル、右側に現在のランレベルが表示されます。一度も変更していない場合は、一つ前のランレベルのところは N が表示されます。

ランレベルを変更するには telinitコマンドを用います。ランレベル 3に変更するには次のようにします。

# /sbin/telinit 3

telinit 0を実行するとシステムの停止(halt)を行えます。また、telinit 6を実行するとシステムの再起動(reboot)を行えます。

警告

何か作業をしている場合は、ランレベルを切り替える前に、必要に応じて保存するなどしてアプリケーションを終了させてください。

たとえば ランレベル5 で GNOME上で何か作業をしている時に、ランレベル 3 に切り替えると、GNOME 上のアプリケーションなどは強制終了され、X Window System も終了します。

GNOME上での作業を終えてログアウトした後で、仮想コンソールに移ってroot権限でランレベルを切り替えるとよいでしょう。

なお、ランレベル3 からランレベル5 に切り替える場合では、telinit コマンドを実行した後、自動的に gdm のログイン画面に切り替わりますが、仮想コンソールでは telinit コマンドを実行したユーザがログインしたままになっているので、画面を再び仮想コンソールに切り替えてログアウトするなどしてください。

ユーザへの通知など

必要であれば、ランレベルを切り替える前にユーザに通知してください。

wコマンドで、現在ログインしているユーザを調べることができます。また、wallコマンドやwriteコマンドなどで、ユーザの端末にメッセージを送ることができます。

メールやwebで告知しておくほうが有効かもしれません。

26.4.1. 標準のランレベルを設定する

標準のランレベルは、/etc/inittab というテキストファイルで設定されています。

/etc/inittab の9行〜19行 の部分に次のように記述されています。 説明のために左端に行番号を付けています。

9         # Default runlevel. The runlevels used by RHS are:
10        #   0 - halt (Do NOT set initdefault to this)
11        #   1 - Single user mode
12        #   2 - Multiuser, without NFS (The same as 3, if you do not have networking)
13        #   3 - Full multiuser mode
14        #   4 - unused
15        #   5 - X11
16        #   6 - reboot (Do NOT set initdefault to this)
17        # 
18        id:5:initdefault:
19        

9行〜16行が、ランレベルごとの説明で、18行目の 数字 5 が標準のランレベルです。

例26.1 標準のランレベルを 5 から 3 に変更するには

警告

起動しなくなるおそれがありますので、必要な部分以外は書き変えないでください。また、ランレベル 0 や 4 や 6 は 停止、未使用、再起動 なので、設定しないでください。

注記

電源を入れた直後のGRUBブートローダでランレベルを指定することができます。参照 「起動時にカーネルオプションを指定、変更するには」

編集するファイルをバックアップしておきます。

# cp -i /etc/inittab /etc/inittab.original

エディタjedでファイルを開きます。

# jed /etc/inittab

ランレベルを 5 から 3 に変更します。

id:5:initdefault:

#id:5:initdefault:
id:3:initdefault:

のように書き換えます。

行頭に # をつけることでその行を無効にできます。無効にすることで、変更前はランレベルは 5 であったということを残しておきます。新しい設定は次の行に書きます。