CentOS 6やRHEL 6までは動作モードを複数切り替えられる「ランレベル」という概念がありました。
CentOS 7、RHEL 7ではランレベルの概念がなくなり、代わりにsystemdの「target」という概念が用意されています。targetもUnitの一種で、サービスなどのUnitを束ねるためのUnitとなっています。
CentOS 6の各ランレベルに対応するCentOS 7のtargetは、下表のとおりです。
ランレベル | target |
---|---|
0 | poweroff.target |
1 | rescue.target |
3 | multi-user.target |
5 | graphical.target |
6 | reboot.target |
emergency | emergency.target |
起動時の動作モードを変更する
CentOS 6やRHEL 6までは、起動時のランレベルを設定ファイル「/etc/inittab」で指定していました。
CentOS 7では、起動時のtargetを「default.target」として設定します。具体的には、指定するターゲットを、/etc/systemd/system/default.target」としてシンボリックリンクします。
例えば、起動時にGUI画面の動作モードになっているときは、default.targetとして「graphical.target」が設定されています。
起動時のtargetの切り替えは、systemctl set-defaultコマンドで行います。テキストコンソール画面の動作モード「multi-user.target」に変更するには、以下のように実行します。
# systemctl set-default multi-user.target Removed symlink /etc/systemd/system/default.target. Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/multi-user.target.
シンボリックリンクがどう変わったか以下コマンドで確認してみましょう。
# ls -la /etc/systemd/system/default.target lrwxrwxrwx. 1 root root 37 4月 30 2016 /etc/systemd/system/default.target -> /lib/systemd/system/multi-user.target
「default.target」のシンボリックリンクが「multi-user.target」になっていることが確認できます。
default.targetで指定されたのと異なるtargetで起動することもできます。それには、ブートローダーGRUB2から、カーネルオプションとして「systemd.unit=<ターゲット>」という項目を追加します。
起動後に動作モードを変更する
すでに起動している状態で、その場で動作モードを変更するには、systemctl isolateコマンドを使います。例えば、GUIで動作しているときに、以下のように実行すると、テキストコンソールの動作モードに変更されます。
# systemctl isolate multi-user.target
CentOS 6までのtelinitコマンドに相当します。