Red Hat Enterprise Linux 7以降は、ランレベルという方法ではなく、「起動時のターゲット」をCUI、GUIにすることでCUIとGUIでの操作を切り替えます。
CUIとGUIの概要
CUIは、Character User Interface、GUIはGraphical User Interfaceの頭文字です。
CUIはコマンドでのLinuxの操作、GUIはボタンやウィンドウ等のGUIでの操作のことです。
以下の画面はRed Hat Enterprise Linux 9.6でのコマンド操作の例です。

以下はRed Hat Enterprise Linux 9.6のGUIの操作画面です。

ランレベルとターゲット
RHEL6までは、Red Hat Enterprise Linuxの起動時にSysV initもしくはUpstartを利用していました。RHEL7から、現在のRHEL10でも使われているsystemdにSysV initとUpstartが置き換わりました。
systemdに置き換わったことによって、ランレベルの概念はsystemdの「ターゲット」という概念に置き換わります。systemdのターゲットは、Red Hat Enterprise Linuxの起動時に起動する「ターゲット」を設定し、その「ターゲット」が提供する機能をRed Hat Enterprise Linuxで使う、という仕組みです。
以前のバージョンの Red Hat Enterprise Linux は、SysV init または Upstart で配布されており、特定モードのオペレーションを表す事前定義の ランレベル を実装していました。このランレベルは 0 から 6 までの数字で表され、システム管理者が各ランレベルを有効にしたときに実行するシステムサービスが定義されていました。Red Hat Enterprise Linux 7 では、ランレベルの概念が systemd ターゲット に代わっています。
各ランレベルに対応したsystemdのターゲットは以下です。
ランレベル ターゲットユニット 詳細 0runlevel0.target,poweroff.targetシステムをシャットダウンし、電源を切ります。 1runlevel1.target,rescue.targetレスキューシェルを設定します。 2runlevel2.target,multi-user.target非グラフィカルなマルチユーザーシステムを設定します。 3runlevel3.target,multi-user.target非グラフィカルなマルチユーザーシステムを設定します。 4runlevel4.target,multi-user.target非グラフィカルなマルチユーザーシステムを設定します。 5runlevel5.target,graphical.targetグラフィカルなマルチユーザーシステムを設定します。 6runlevel6.target,reboot.targetシステムをシャットダウンして再起動します。
ランレベル3がCUIでの操作
runlevelコマンドを実行した際に確認できる「3」がランレベル3で、CUIでの操作をするランレベルになります。
multi-user.targetはCUIでの操作、ランレベル3に相当する
systemdでのmulti-user.targetがランレベル3に相当し、CUIでの操作を可能にします。
ランレベル5がGUIでの操作
runlevelコマンドを実行した際に確認できる「5」がランレベル5で、GUIでの操作をするランレベルになります。
graphical.targetはGUIでの操作、ランレベル5に相当する
systemdでのgraphical.targetがランレベル5に相当し、GUIでの操作を可能にします。
Red Hat Enterprise Linuxで実際にターゲット(ランレベル)を変更してみる
実際にRHELでsystemdのターゲットを変更してランレベルを設定してみます。
まずは現在のデフォルトターゲット(ランレベル)を確認する
まずは以下のコマンドでRed Hat Enterprise Linuxのターゲットを確認します。
systemctl get-default
RHEL9.6で実際に確認した例は以下です。以下の場合では、ランレベル5になっています。runlevelコマンドを実行して現在のランレベルを確認してみます。
[root@RHEL96 ~]# systemctl get-default
graphical.target
RHEL9.6でrunlevelコマンドを実行した実行例は以下です。
[root@RHEL96 ~]# runlevel
N 5
デフォルトターゲットを変更する
以下のコマンドを実行してデフォルトのターゲットを変更します。
systemctl set-default <デフォルトターゲットに指定したいターゲット>
上記コマンドを実行すると、/etc/systemd/system/default.target ファイルが/usr/lib/systemd/system/配下にある、設定したターゲットの.targetファイルへのシンボリックリンクに置き換わります。
name を、デフォルトで使用するターゲットユニットの名前 (
multi-userなど) に置き換えます。このコマンドにより、/etc/systemd/system/default.targetファイルが、/usr/lib/systemd/system/name.targetへのシンボリックリンクに置き換わります。name は、使用するターゲットユニットの名前になります。
今のセッションのターゲットを変更する
以下のコマンドを実行して今のセッションのターゲットを変更します。
systemctl isolate <ターゲット名>
以下はRed Hat Enterprise Linux 9.6で現在のセッションを「graphical.target」に設定してみたコマンド実行例です。
[root@RHEL96 ~]# systemctl isolate graphical.target
[root@RHEL96 ~]#
runlevelコマンドを実行してみると、3から5になったことがわかります。
[root@RHEL96 ~]# runlevel
3 5
systemctl isolate <ターゲット名>コマンドで変更できるのは、現在のセッションのターゲットのみです。デフォルトのターゲットは変更されません。
[root@RHEL96 ~]#
[root@RHEL96 ~]# systemctl get-default
multi-user.target
システムを再起動して変更したデフォルトターゲットが適用されることを確認する
デフォルトのターゲットを「multi-user.target」に設定して再起動してみます。
Red Hat Enterprise Linux 9.6で試します。まずはランレベルが5になっていることを確認します。
次にmulti-user.targetにデフォルトとのターゲットを設定し、再起動を実施します。
[root@RHEL96 ~]# runlevel
N 5
[root@RHEL96 ~]#
[root@RHEL96 ~]#
[root@RHEL96 ~]#
[root@RHEL96 ~]# systemctl set-default multi-user.target
Removed "/etc/systemd/system/default.target".
Created symlink /etc/systemd/system/default.target → /usr/lib/systemd/system/multi-user.target.
[root@RHEL96 ~]#
[root@RHEL96 ~]#
[root@RHEL96 ~]#
[root@RHEL96 ~]# systemctl get-default
multi-user.target
[root@RHEL96 ~]#
[root@RHEL96 ~]#
[root@RHEL96 ~]# runlevel
N 5
[root@RHEL96 ~]#
[root@RHEL96 ~]#
[root@RHEL96 ~]# reboot
再起動後の状態を確認します。デフォルトのターゲットがmulti-user.target、ランレベルは3になっています。
[root@RHEL96 ~]# systemctl get-default
multi-user.target
[root@RHEL96 ~]#
[root@RHEL96 ~]# runlevel
N 3
[root@RHEL96 ~]#
デフォルトターゲットが変更されていることを確認する
以下のコマンドを実行してデフォルトターゲットが変更されていることを確認します。
systemctl get-default
Red Hat Enterprise Linux 9.6でランレベルも同時に確認してみます。
[root@RHEL96 ~]# systemctl get-default
multi-user.target
[root@RHEL96 ~]#
[root@RHEL96 ~]# runlevel
N 3
[root@RHEL96 ~]#
