SystemD でランレベル (ターゲット) を変更する方法
Systemd は、Linux 用の最新の init システムです。一般的な SysV init システムおよび LSB init スクリプトと互換性のあるシステムおよびサービス マネージャーです。次の記事で説明されているように、SysV init の欠点を克服することを目的としていました。
- 「init」と「systemd」の背後にある物語: Linux で「init」を「systemd」に置き換える必要がある理由
Linux などの Unix 系システムでは、オペレーティング システムの現在の動作状態はランレベルl と呼ばれます。どのシステム サービスが実行されているかを定義します。 SysV init などの一般的な init システムでは、ランレベルは番号で識別されます。ただし、systemd ではランレベルはターゲットと呼ばれます。
推奨読書: システムの起動プロセスとサービスの管理 (SysVinit、Systemd、および Upstart)
今回はsystemdでランレベル(ターゲット)を変更する方法を解説します。先に進む前に、ランレベルの数値とターゲットの関係について簡単に説明しましょう。
- 実行レベル 0 は poweroff.target と一致します (runlevel0.target は poweroff.target へのシンボリック リンクです) )。
- 実行レベル 1 は rescue.target と一致します (runlevel1.target は rescue.target へのシンボリック リンクです) )。
- 実行レベル 3 は multi-user.target によってエミュレートされます (runlevel3.target は multi-user.target へのシンボリック リンクです) )。
- 実行レベル 5 は graphical.target によってエミュレートされます (runlevel5.target は graphical.target へのシンボリック リンクです) )。
- 実行レベル 6 は reboot.target によってエミュレートされます (runlevel6.target は reboot.target へのシンボリック リンクです) )。
- 緊急は emergency.target と一致します。
Systemd で現在のターゲット (実行レベル) を表示する方法
システムが起動すると、デフォルトで systemd はdefault.target ユニットをアクティブ化します。主な仕事は、依存関係を介してサービスやその他のユニットを取り込んでアクティブ化することです。
デフォルトのターゲットを表示するには、以下のコマンドを入力します。
#systemctl get-default
graphical.target
デフォルトのターゲットを設定するには、以下のコマンドを実行します。
# systemctl set-default multi-user.target
Systemd でターゲット (ランレベル) を変更する方法
システムの実行中にターゲット (実行レベル) を切り替えることができます。つまり、そのターゲットで定義されたサービスとユニットのみがシステム上で実行されるようになります。
ランレベル 3 に切り替えるには、次のコマンドを実行します。
# systemctl isolate multi-user.target
システムをランレベル 5 に変更するには、以下のコマンドを入力します。
# systemctl isolate graphical.target
systemd の詳細については、次の役立つ記事を参照してください。
- Linux で「Systemctl」を使用して「Systemd」サービスとユニットを管理する方法
- シェル スクリプトを使用して Systemd で新しいサービス ユニットを作成して実行する方法
- システム起動プロセスとサービスの管理 (SysVinit、Systemd、および Upstart)
- Journalctl を使用して Systemd でログ メッセージを管理する [総合ガイド]
このガイドでは、systemd を使用してランレベル (ターゲット) を変更する方法を示しました。この記事に関するご質問やご意見がございましたら、下のコメント フォームを使用してお送りください。