systemdのターゲット(target)

systemdのターゲット

systemdの「ターゲット」の概要と説明

Linuxシステムで使用される init システムである systemd には、従来のランレベルに相当する概念として ターゲット (target) があります。ターゲットは、システムの状態や特定の機能を表現するために使用される systemd の単位 (ユニット) です。systemd では、これらのターゲットを切り替えることによって、システムの実行モードやサービスの状態を変更することができます。

ターゲットとは?

ターゲットは、複数のユニット(サービスやマウントポイント、デバイスなど)をグループ化し、システムの特定の状態や実行モードを表現する役割を持ちます。例えば、multi-user.target は複数のユーザーで同時にシステムを使用できる通常の運用状態を表します。また、graphical.target は GUI(グラフィカルユーザーインターフェース)環境が提供される実行状態を示します。

従来のランレベルとターゲットの違い

従来の Linux システムでは、ランレベル によってシステムの実行モードが管理されていました。ランレベルは、システムの起動プロセスや運用状態(シングルユーザーモード、マルチユーザーモードなど)を制御するための数値(0-6)で表現されていました。

systemd では、これに代わるものとしてターゲットが使用されています。ターゲットは、数値で表現されるランレベルとは異なり、システムの状態をより柔軟に設定・管理できるように設計されています。例えば、ターゲットは従来のランレベルを表現するだけでなく、カスタムの状態やサービスのグループを定義することも可能です。

主なターゲットの種類

systemd には、さまざまなターゲットがデフォルトで用意されています。以下は、一般的に使用されるターゲットの例です。

  • default.target: システム起動時に指定されたデフォルトのターゲット。通常は multi-user.target または graphical.target にリンクされています。
  • multi-user.target: 複数のユーザーが同時にシステムを使用できるマルチユーザーモードを提供します。従来のランレベル 3 に相当します。
  • graphical.target: グラフィカルユーザーインターフェース (GUI) が利用できる状態を表し、multi-user.target を含みます。従来のランレベル 5 に相当します。
  • rescue.target: システムを最小限のサービスで起動し、管理者がシステム修復などの作業を行うための救援モードです。従来のランレベル 1(シングルユーザーモード)に相当します。
  • emergency.target: 最小限のシステム状態で起動し、管理者がシステムの修復を行うための緊急モードです。システムに対して最も制限されたアクセスが提供されます。
  • shutdown.target: システムを停止するためのターゲットです。システムのシャットダウンプロセスを実行します。
  • poweroff.target: システムを完全に電源オフ状態にするためのターゲットです。
  • reboot.target: システムを再起動するためのターゲットです。

ターゲットの役割

ターゲットは、複数のユニットをグループ化して、特定の目的を達成するためのシステムの状態を定義します。例えば、graphical.target は multi-user.target を含んでおり、さらに GUI を起動するためのサービスも含んでいます。これにより、システム管理者は、ターゲットを切り替えるだけで、システム全体の動作モードを簡単に変更することができます。

ターゲットの切り替え

systemd では、systemctl コマンドを使用してターゲットを切り替えることができます。システムを特定のターゲットに変更することで、実行するサービスや提供する機能を簡単に調整できます。

まとめ

systemd におけるターゲットは、システムの実行モードやサービスの状態を制御するための重要な仕組みです。従来のランレベルと比較して、ターゲットはより柔軟で細かい制御を提供します。システム管理者は、ターゲットを利用してシステムの状態を効率的に管理し、必要に応じてシステムの運用モードを変更することができます。