Linux の runlevel (ランレベル) についてまとめてみた。
runlevel (ランレベル) とは
ランレベルとは、Linux OSの動作モードを意味します。
ランレベル毎にどのようなサービスを起動するか、起動しないかを決定することができます。
Linuxのランレベルの種類と内容は以下の通りです。
ランレベル | Red Hat Enterprise Linux、CentOS、Fedora | Ubunts、Debian GNU/Linux |
---|---|---|
0 | 停止 | 停止 |
1 | シングルユーザモード | シングルユーザモード |
2 | マルチユーザモード (テキストログイン、NFSサーバは停止) |
マルチユーザモード |
3 | マルチユーザモード (テキストログイン) |
マルチユーザモード |
4 | 未使用 | マルチユーザモード |
5 | マルチユーザーモード (グラフィカルログイン) |
マルチユーザモード |
6 | 再起動 | 再起動 |
S or s | シングルユーザーモード | シングルユーザモード |
/usr/lib/systemd/system には、各ランレベルがどの設定と紐づいているかが書かれています。
lrwxrwxrwx 1 root root 13 3月 7 12:43 runlevel6.target -> reboot.target
lrwxrwxrwx 1 root root 16 3月 7 12:43 runlevel5.target -> graphical.target
lrwxrwxrwx 1 root root 17 3月 7 12:43 runlevel4.target -> multi-user.target
lrwxrwxrwx 1 root root 17 3月 7 12:43 runlevel3.target -> multi-user.target
lrwxrwxrwx 1 root root 17 3月 7 12:43 runlevel2.target -> multi-user.target
lrwxrwxrwx 1 root root 13 3月 7 12:43 runlevel1.target -> rescue.target
lrwxrwxrwx 1 root root 15 3月 7 12:43 runlevel0.target -> poweroff.target
ランレベルの確認方法
ランレベルの確認コマンドは、runlevel です。
以下の実行例では1つ前のランレベルが「N」、そして現在のランレベルが「5」であることが分かります。
「N」はシステム起動後にランレベルが一度も変更されていない場合に「N」と表示されます。
1 2 |
# runlevel N 5 |
以下の実行例では、1つ前のランレベルが「5」、現在のランレベルが「3」である事が分かります。
1 2 |
# runlevel 5 3 |
ランレベルの変更方法
ランレベルの設定方法には、
- 「systemctl」コマンドを使用する方法
- 「/etc/systemd/system/default.taget」ファイルを手動で入れ替える方法
があります。
systemctlコマンドを使用
「systemctl」コマンドを使用して、各ランレベルに設定を変更します。
以下のコマンドを実行すると、「/etc/systemd/system/default.taget」ファイルが入れ替えられるので、次回サーバを起動する際にランレベルが変更されます。
ランレベル1(シングルユーザモード)
1 |
# sytemctl set-default rescue.target |
ランレベル3(CLI マルチユーザモード)
1 |
# systemctl set-default multi-user.target |
ランレベル5(GUI マルチユーザモード)
1 |
#systemctl set-default graphical.target |
ランレベル3へ変更
「default.target」ファイルを一旦削除してから、新たにリンクを「defautl default.target」に張ります。
1 2 3 |
# systemctl set-default multi-user.target # rm '/etc/systemd/system/default.target' # ln -s '/usr/lib/systemd/system/multi-user.target' '/etc/systemd/system/default.target' |
ランレベル5へ変更
ランレベル3の時と同様に「default.target」へのリンクを貼り直します。
1 2 3 |
# systemctl set-default graphical.target # rm '/etc/systemd/system/default.target' # ln -s '/usr/lib/systemd/system/graphical.target' '/etc/systemd/system/default.target' |
ランレベルの設定確認
runlevel コマンドで確認します。
設定はサーバを再起動することで反映されるので、実際にサーバを再起動して確認してみてください。
コメント