「ランレベルとsystemdのターゲットの対応が知りたい」
CentOS7では、従来のinitに代わってsystemdがサービス管理の仕組みとして採用されました。この変更はLinuxの起動・停止・サービス管理の根幹に関わるため、CentOS6以前に慣れた方には戸惑いが生じやすい変更です。
この記事では、initとsystemdの違い、ランレベルとsystemdターゲットの対応関係、CentOS7での確認方法を解説します。
・CentOS7からinitが廃止され、systemdが採用された
・systemdは並列処理が可能なため、起動・停止が高速化された
・ランレベルの代わりに「ターゲット」という概念が導入された
・ランレベル3→multi-user.target、ランレベル5→graphical.target に対応
・
systemctl isolate ターゲット名 でランレベルの切り替えが行えるでも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
initとは何か・なぜ廃止されたか
従来のCentOS(6以前)では、デーモンやアプリケーションなどのプロセスを起動する仕組みに init(SysVinit) を採用していました。initのメリットは、ランレベルと呼ばれる値によってシステムの状態を変更できるシンプルな仕組みにあります。しかし、以下のデメリットも存在していました。
・デーモンやアプリケーション数が増加すると、起動・停止順序の管理が複雑になる
・initからの起動は並列処理されないため、数が増えるとOSの起動時間が長くなる
・プロセスの親子関係が崩れた場合、子プロセスの挙動を適切に制御できない
systemdとは何か・initとの違い
こうしたinitの課題を解決するため、CentOS7からは systemd が採用されました。systemdの主なメリットは以下の通りです。・従来必要だったアプリケーションの起動・停止スクリプトが不要になった
・起動処理を並列処理できるため、OSの起動・停止が高速化された
・親子関係にあるプロセスの起動と停止制御を適切に行える
・ジャーナルログ(journald)による統合的なログ管理が可能
ランレベルとsystemdターゲットの対応表
CentOS7では、ランレベルの代わりに「ターゲット」が導入されています。ターゲットとは、systemdにおける複数のサービス(デーモン)などの制御対象をまとめたものです。| 状態 | CentOS6のランレベル | CentOS7のsystemdターゲット |
|---|---|---|
| システム停止 | 0 | systemctl isolate poweroff.target |
| シングルユーザーモード | 1 | systemctl isolate rescue.target |
| マルチユーザーモード(CUI) | 3 | systemctl isolate multi-user.target |
| グラフィカルログイン(GUI) | 5 | systemctl isolate graphical.target |
| OSの再起動 | 6 | systemctl isolate reboot.target |
| 緊急モード | - | systemctl isolate emergency.target |
runlevelターゲットのリンクを確認する
CentOS7で定義されているターゲットが、従来のランレベルのどれに相当しているかは以下のコマンドで確認できます。# runlevelターゲットのシンボリックリンクを確認する [root@server ~]# ls -l /lib/systemd/system/runlevel*target lrwxrwxrwx. 1 root root 15 2月 23 14:36 /lib/systemd/system/runlevel0.target -> poweroff.target lrwxrwxrwx. 1 root root 13 2月 23 14:36 /lib/systemd/system/runlevel1.target -> rescue.target lrwxrwxrwx. 1 root root 17 2月 23 14:36 /lib/systemd/system/runlevel2.target -> multi-user.target lrwxrwxrwx. 1 root root 17 2月 23 14:36 /lib/systemd/system/runlevel3.target -> multi-user.target lrwxrwxrwx. 1 root root 17 2月 23 14:36 /lib/systemd/system/runlevel4.target -> multi-user.target lrwxrwxrwx. 1 root root 16 2月 23 14:36 /lib/systemd/system/runlevel5.target -> graphical.target lrwxrwxrwx. 1 root root 13 2月 23 14:36 /lib/systemd/system/runlevel6.target -> reboot.target
runlevel3.target が multi-user.target に、runlevel5.target が graphical.target にリンクされています。デフォルトターゲットを確認・変更する
1. デフォルトターゲットを確認する
# デフォルトターゲットを確認する [root@server ~]# systemctl get-default multi-user.target
2. デフォルトターゲットを変更する
サーバー用途ではmulti-user.target、GUI環境では graphical.target が一般的です。# デフォルトターゲットをCUI(マルチユーザーモード)に設定する [root@server ~]# systemctl set-default multi-user.target # デフォルトターゲットをGUI(グラフィカルログイン)に設定する [root@server ~]# systemctl set-default graphical.target
まとめ
| やりたいこと | コマンド |
|---|---|
| runlevelとターゲットの対応を確認する | ls -l /lib/systemd/system/runlevel*target |
| デフォルトターゲットを確認する | systemctl get-default |
| デフォルトターゲットを変更する | systemctl set-default multi-user.target |
| 今すぐランレベルを切り替える | systemctl isolate multi-user.target |
systemdを使いこなして、CentOS7以降のLinuxサーバーを安全に運用するための「型」を身につけたいですか?
initからsystemdへの移行を正しく理解することは、現代のLinuxサーバー運用の基本スキルです。
ネットの切れ端の情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。
「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
登録10秒/合わなければ解除3秒 / 詳細はこちら
- 次のページへ:CentOS7の新機能|アーキテクチャ・systemd・firewalld・XFSの主要変更点
- 前のページへ:CentOS7のアーキテクチャ変更点|CPU・メモリ・ファイルシステム・パッケージバージョンの比較
- この記事の属するカテゴリ:CentOS7・Linuxtipsへ戻る

無料メルマガで学習を続ける
Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。
登録無料・いつでも解除できます