プロセス制御システム(systemd)Unitファイル

プロセス制御システム(systemd)は、以下の4部に分けて解説しています。

Unitファイル

 Unitファイルは、systemdが管理するシステムおよびサービスの構成を定義するファイルです。各Unitファイルは特定の機能やサービスを管理し、その動作や依存関係を記述します。Unitファイルは通常、以下のディレクトリに格納されています。

  • /etc/systemd/system/:ユーザーがカスタム設定を定義する場所。
  • /usr/lib/systemd/system/:システム全体のデフォルト設定を定義する場所。
Unitファイルの構成

Unitファイルは主に以下のセクションで構成されています。

  1. [Unit]:ユニットの説明や依存関係を記述。
  2. [Service]:サービスユニットの場合、実行するコマンドや設定を記述。
  3. [Install]:インストール情報を記述し、ターゲットへの関連付けを行う。

multi-user.targetの確認

 「/usr/lib/systemd/system/multi-user.target」ファイルには、マルチユーザーモードで必要なサービスと依存関係が定義されています。このファイルを直接変更することはありませんが、その内容を確認することはシステム管理において重要です。

/usr/lib/systemd/system/multi-user.targetファイルの内容
user01@ubuntu-vm:~$ cat /usr/lib/systemd/system/multi-user.target
#  SPDX-License-Identifier: LGPL-2.1-or-later
#
#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.

[Unit]
Description=Multi-User System
Documentation=man:systemd.special(7)
Requires=basic.target
Conflicts=rescue.service rescue.target
After=basic.target rescue.service rescue.target
AllowIsolate=yes
各キーの内容
キー説明
DescriptionMulti-User Systemマルチユーザーモードの説明
Documentationman:systemd.special(7)ドキュメントの参照
Requiresbasic.targetこのターゲットが必要とするユニット
Conflictsrescue.target競合するユニット
AfterAfter=basic.target rescue.service rescue.target自Unit起動前に起動可能なユニット
AllowIsolateyessystemctl isolateのターゲットとして指定が可能
各キーの内容

各種ターゲットで起動するサービス

 各ターゲットで起動するサービスは、「/etc/systemd/system」ディレクトリ内の「ターゲット名.wants」ディレクトリに格納されています。ここにある「~.serviceファイルは、起動するサービスを示しています。「」の部分はサービス名を表しています。

multi-user.targetで起動するサービス
user01@ubuntu-vm:~$ ls /etc/systemd/system/multi-user.target.wants/
 ModemManager.service
 NetworkManager.service
 anacron.service
 avahi-daemon.service
 console-setup.service
 cron.service
 cups-browsed.service
 cups.path
 cups.service
(省略)
出力結果の例と説明
サービス名説明
crond.serviceCronデーモンの起動
cups.serviceCUPS印刷サービスの起動
出力結果の例と説明

まとめ

 systemdのUnitファイルは、システムおよびサービスの構成と管理に不可欠な要素です。multi-user.targetファイルはマルチユーザーモードに必要なサービスと依存関係を定義しており、各ターゲットで起動するサービスはターゲット名.wantsディレクトリ内で確認できます。systemdのターゲットとサービスの管理を理解することで、効率的なシステム管理が可能となります。

ファイル説明
/usr/lib/systemd/system/multi-user.targetマルチユーザーモードの設定ファイル。依存関係や競合を定義。
/etc/systemd/system/multi-user.target.wants/マルチユーザーモードで起動するサービスを定義するディレクトリ。
Unitファイルと起動するサービス