(CentOS6まで)Linux ランレベル(runlevel)
ランレベル(runlevel)とは、Linuxの動作モードのことをいいます。いくつかの種類があり、ランレベル毎に起動させるサービスを設定できます。ランレベル(runlevel)について説明します。
また、ランレベルはCentOS 6までの話です(もう少し正確にいうと、SysV init もしくは Upstart が導入されているシステムまでの話)。CentOS 7からはランレベルの概念が変わっています。
Last Update : 2015年06月26日
(CentOS6まで)Linux ランレベル(runlevel) 項目
1. ランレベルの種類
全部で8つのランレベル(runlevel)を使うことができます。0~6までの、数値で表す7種類と、「S」(大文字小文字区別無し)という文字で表すものがあり、現在のランレベルの値によって起動/停止されるサービスが変わります。ディストリビューションによって少し内容が変わるところもありますが、ランレベルの0、1、6 は予約されていてどのディストリビューションでも同じ動作を示します。
どのランレベルでどんなサービスを起動させるかは自分で決めることができます。
ランレベル | 動作モード |
---|---|
0 | システム停止 |
1 | シングルユーザーモード |
2 | マルチユーザーモード(CUI,NFS無し) |
3 | マルチユーザーモード(CUI) |
4 | 使わない |
5 | マルチユーザーモード(GUI) |
6 | 再起動 |
S(もしくは小文字のs) | シングルユーザーモード |
memo
CUI = character user interface の略で、全ての操作をキーボードで行う方式。全てコマンドで操作する。
GUI = graphical user interface の略で、Windowsの画面のように画像や図形があり、マウス等を使って直感的にOSを操作できる方式。
2. 現在のランレベルの確認
現在どのランレベルで動作しているかは、runlevelコマンドで確認できます。
runlevel コマンドの書式
runlevel
runlevel コマンドの出力結果の見方
# runlevel N 3
runlevelコマンドは、前のランレベル、空白、現在のランレベルという順番で出力されます。前回の状態の記録がない場合(OS起動直後等)は、「N」という文字で表示されます。
この場合は、現在のランレベルは3で、その前のランレベルの記録はない(つまり、起動後に変更がない)ということをあらわします。
memo
ランレベルの状況については、who コマンドでも確認できます。
# who -a ← who コマンドに、「-a」もしくは、「-r」オプションでrunlevelを確認できます。 system boot 2015-06-26 08:41 run-level 3 2015-06-26 08:41 ← 現在のrunlevelを確認。 LOGIN tty2 2015-06-26 08:41 2113 ID=2 LOGIN tty3 2015-06-26 08:41 2115 ID=3 LOGIN tty1 2015-06-26 08:41 2111 ID=1 LOGIN tty5 2015-06-26 08:41 2119 ID=5 LOGIN tty6 2015-06-26 08:41 2121 ID=6 LOGIN tty4 2015-06-26 08:41 2117 ID=4 root + pts/0 2015-06-26 08:42 . 2135 (192.168.0.9)
last コマンドを使うと、ランレベルの移行状況を確認できます。
# last -x -10 ← 「-x」オプションでrunlevelの移行状況を表示。「-10」は10行分の意味。 root pts/0 192.168.0.9 Fri Jun 26 08:42 still logged in runlevel (to lvl 3) 2.6.32-431.29.2. Fri Jun 26 08:41 - 08:49 (00:08) ← runlevelが3に移ったという意味。 reboot system boot 2.6.32-431.29.2. Fri Jun 26 08:41 - 08:49 (00:08) shutdown system down 2.6.32-431.29.2. Fri Jun 26 08:40 - 08:41 (00:00) runlevel (to lvl 6) 2.6.32-431.29.2. Fri Jun 26 08:40 - 08:40 (00:00) ← runlevelが6(再起動)に移ったという意味。 runlevel (to lvl 3) 2.6.32-431.29.2. Fri Jun 26 08:28 - 08:40 (00:12) runlevel (to lvl 2) 2.6.32-431.29.2. Fri Jun 26 08:24 - 08:28 (00:03) root pts/0 192.168.0.9 Fri Jun 26 08:18 - down (00:21) root pts/0 192.168.0.9 Fri Jun 26 08:09 - 08:09 (00:00) runlevel (to lvl 3) 2.6.32-431.29.2. Wed Jun 24 14:32 - 08:24 (1+17:52) wtmp begins Tue Aug 13 09:34:02 2013
3. 別のランレベルへ移行する
別のランレベルへ状態を移行するには、「telinit」コマンドを使います。
telinit 書式
telinit RUNLEVEL
RUNLEVELは、移行先のランレベルを指定する。(0~6、S、s)
telinit 使用例
# telinit 5 ランレベル5へ状態を移行
4. デフォルトのランレベルを設定する
OSが起動した直後の、デフォルトのランレベルは、/etc/inittab ファイルで設定します。
/etc/inittab ファイルをvi 等で開き、以下の行の数字の部分を変更します。ファイルの修正は、root ユーザーでおこないます。
id:3:initdefault:
この場合だと、ランレベル3で起動してきます。
ランレベル5で起動するようにするには、以下のようにします。
id:5:initdefault:
ファイル修正後に、OSを再起動すると変更内容が反映されます。