
質問
systemdのtargetについて解説してください。 |
解答
**systemdのtarget**とは、Linuxシステムの起動時や特定の動作モードで、 サービスやリソースの組み合わせを管理するためのsystemdのユニットです。 旧来のSysV initで使用されていた**ランレベル**の概念に相当し、特定のグループ化された状態(ターゲット)を表現します。 systemdはサービス起動の依存関係を管理するため、各targetが必要なサービスやリソースを柔軟に組み合わせて起動できます。 ### targetの役割と目的 targetは、システムの異なる動作モードを定義し、指定された目的に応じたサービスやリソースのグループをまとめるために使用されます。 たとえば、シングルユーザーモードやグラフィカルなユーザーインターフェース(GUI)を提供するためのマルチユーザーモードを構成します。 ### よく使われる主要なtarget 1. **`default.target`** デフォルトのターゲットで、システム起動時に読み込まれるtargetです。 通常は`graphical.target`または`multi user.target`へのシンボリックリンクとして設定され、システムの起動モードを制御します。 2. **`graphical.target`** グラフィカルユーザーインターフェース(GUI)を含むマルチユーザーモード。 GUIデスクトップ環境が有効な場合に使われます。 `multi user.target`の機能も含んでいます。 3. **`multi user.target`** CLIベースのマルチユーザーモード。 ネットワークや他のシステムサービスが起動し、複数のユーザーがCLIで利用できる状態にするモードです。 SysV initの「ランレベル3」に相当します。 4. **`rescue.target`** システムの修復モード(レスキューモード)で、最小限のサービスとrootアクセスだけが許可された状態。 シングルユーザーモードに相当し、トラブルシューティングやシステム修復に使われます。 5. **`emergency.target`** レスキューモードよりもさらに制限された状態で起動するターゲット。 ほぼすべてのサービスが停止している状態で、ルートシェルを提供し、システムの基本的なトラブルシューティングができる環境です。 6. **`poweroff.target`** システムをシャットダウンして電源をオフにします。 SysV initの「ランレベル0」に相当します。 7. **`reboot.target`** システムを再起動するためのターゲット。 SysV initの「ランレベル6」に相当します。 ### targetと依存関係 targetには他のtargetやサービスへの依存関係があり、必要なサービスが順次起動されます。 たとえば、`graphical.target`は`multi user.target`を依存先に持つため、グラフィカル環境が起動する前にマルチユーザーモードのサービスも起動します。 ### まとめ systemdのtargetは、システムの起動モードや特定の状態をまとめるためのユニットで、従来のランレベルに相当します。 特定のtargetで依存関係を管理しつつ、柔軟なサービス構成とモード切替が可能になります。 |
![]() |
![]() |
【下記、広告です。クリックいただけると励みになります。】