systemdサービス・ユニット・ファイルの変更
systemd
サービスの構成を変更するには、.service
、.target
、.mount
および.socket
拡張子を持つファイルを/usr/lib/systemd/system
から/etc/systemd/system
にコピーします。
ファイルをコピーしたら、/etc/systemd/system
でバージョンを編集できます。/etc/systemd/system
のファイルは、/usr/lib/systemd/system
のバージョンより優先されます。/usr/lib/systemd/system
のファイルに対応するパッケージを更新しても、/etc/systemd/system
のファイルは上書きされません。
特定のサービスのデフォルトのsystemd
構成に戻すには、/etc/systemd/system
でコピーの名前を変更するか削除します。
サービスの構成を変更するもう1つの方法は、ドロップイン・ファイルを作成することです。この方法では、ユニットの特定のパラメータを変更しながら元のユニットを保持できます。
unit_name.d
ディレクトリが既存のユニットである/etc/systemd/system/unit_name.d/
にドロップイン・ファイルを作成し、ドロップイン・ファイルに.conf
ファイル拡張子を付与します。たとえば、/etc/systemd/system/unit_name.d/name_of_drop-in.conf
です。systemd
は、.conf
ファイルを読み取り、設定を元の単位に適用します。
次の項では、システムで編集およびカスタマイズするサービス・ユニット・ファイルの様々な部分について説明します。
サービス・ユニット・ファイルについて
サービスは、対応するサービス・ユニット・ファイルに基づいて実行されます。サービス・ユニット・ファイルには通常次のセクションが含まれ、各セクションには、特定のサービスの実行方法を決定するそれぞれの定義済オプションが含まれています。
-
[Unit]
-
サービスに関する情報が含まれています。
[UnitType]
:-
ファイルのユニット・タイプに固有のオプションが含まれています。たとえば、サービス・ユニット・ファイルでは、このセクションのタイトルは
[Service]
で、ExecStart
やStandardOutput
などのサービス・タイプのユニットに固有のオプションが含まれています。そのタイプに固有のオプションを提供するユニット・タイプにのみ、このようなセクションがあります。
-
[Install]
-
特定のユニットのインストール情報が含まれています。このセクションの情報は、systemctl enableおよびsystemctl disableコマンドで使用されます。
サービス・ユニット・ファイルには、サービスに対する次の構成が含まれている場合があります。
[Unit]
Description=A test service used to develop a service unit file template
[Service]
Type=simple
StandardOutput=journal
ExecStart=/usr/lib/systemd/helloworld.sh
[Install]
WantedBy=default.target
「サービス・ユニット・ファイルで構成可能なオプション」では、各セクションで使用可能な一般的に使用される構成済オプションの一部について説明します。完全なリストは、systemd.service(5)
およびsystemd.unit(5)
の各マニュアル・ページでも入手できます。
サービス・ユニット・ファイルの構成可能なオプション
次の各リストでは、サービス・ユニット・ファイルの個別のセクションについて説明します。
[Unit]セクションのオプションの説明
次のリストは、サービス・ユニット・ファイルの[Unit]
セクションで使用可能な、一般的に使用される構成可能オプションの概要を示しています。
-
Description
-
サービスに関する情報を提供します。この情報は、ユニットで
systemctl status
コマンドを実行すると表示されます。 -
Documentation
-
このユニットまたはその構成のドキュメントを参照するURIのスペース区切りリストが含まれています。
-
After
-
オプションに一覧表示されているユニットの起動完了後にのみ実行されるようにユニットを構成します。
次の例では、ファイルvar3.
service
に次のエントリがある場合、これはユニットvar1.service
およびvar2.service
の起動後にのみ開始されます:After=var1.service var2.service
-
Requires
-
他のユニットに対して要件の依存関係を持つようにユニットを構成します。ユニットがアクティブになっている場合、その
Requires
オプションにリストされているユニットもアクティブになります。 -
Wants
-
厳密でないバージョンの
Requires
オプション。たとえば、Wants
オプションにリストされているユニットのいずれかが起動に失敗した場合でも、特定のユニットをアクティブ化できます。
[Service]セクションのオプションの説明
次のリストは、サービス・ユニット・ファイルの[Service]
セクションで使用可能な、一般的に使用される構成可能オプションの概要を示しています。
-
Type
-
サービス・ユニットのプロセス起動タイプを構成します。
デフォルトでは、このパラメータの値は
simple
です。これは、サービスのメイン・プロセスがExecStart
パラメータによって起動されることを示します。通常、サービスのタイプが
simple
の場合、この定義はファイルから省略できます。 -
StandardOutput
-
サービスのイベントのログ記録方法を構成します。たとえば、サービス・ユニット・ファイルに次のエントリがあるとします。
StandardOutput=journal
この例では、値
journal
は、イベントがジャーナルに記録されることを示し、journalctl
コマンドを使用して表示できます。 -
ExecStart
-
サービスを開始するフル・パスとコマンドを指定します(たとえば、
/usr/bin/npm start
)。 -
ExecStop
-
ExecStart
を介して開始されたサービスを停止するために実行するコマンドを指定します。 -
ExecReload
-
サービス内の構成のリロードをトリガーするために実行するコマンドを指定します。
-
Restart
-
サービス・プロセスが終了したか、停止したか、またはタイムアウトに達したときにサービスを再起動するかどうかを構成します。
ノート:
このオプションは、systemctl stop
やsystemctl restart
などのsystemd
操作によってプロセスが正常に停止された場合、適用されません。このような場合、この構成オプションによってサービスは再起動されません。 -
RemainAfterExit
-
すべてのプロセスが終了した場合でもサービスがアクティブであるとみなされるかどうかを構成するブール値です。デフォルト値は
no
です。
[Install]セクションのオプションの説明
次のリストは、サービス・ユニット・ファイルの[Install]
セクションで使用可能な、一般的に使用される構成可能オプションの概要を示しています。
-
Alias
-
ユニットの名前をスペースで区切ったリスト。
インストール時に、
systemctl enable
はこれらの名前からユニット・ファイル名へのシンボリック・リンクを作成します。別名が有効になるのは、ユニットが有効な場合のみです。
-
RequiredBy
-
サービスが他のユニットで必要になるように構成します。
たとえば、ユニット・ファイル
var1.service
に次の構成が追加されているとします。RequiredBy=var2.service var3.service
var1.service
が有効な場合、var2.service
とvar3.service
の両方にvar1.service
に対するRequires
依存関係が付与されます。この依存関係は、var1.service
システム・ユニット・ファイルを指す各依存サービス(var2.service
およびvar3.service
)の.requires
フォルダに作成されるシンボリック・リンクによって定義されます。 -
WantedBy
-
ファイルを編集しているサービスに対する
wants
依存関係を付与するユニットのリストを指定します。たとえば、ユニット・ファイル
var1.service
に次の構成が追加されているとします。WantedBy=var2.service var3.service
var1.service
が有効な場合、var2.service
とvar3.service
の両方にvar1.service
に対するWants
依存関係が付与されます。この依存関係は、var1.service
のシステム・ユニット・ファイルを指す各依存サービス(var2.service
およびvar3.service
)の.wants
フォルダに作成されるシンボリック・リンクによって定義されます。 -
Also
-
ユニットがインストールまたは削除されたときにインストールまたは削除する追加ユニットを一覧表示します。
-
DefaultInstance
-
DefaultInstance
オプションは、テンプレート・ユニット・ファイルにのみ適用されます。テンプレート・ユニット・ファイルを使用すると、1つの構成ファイルから複数のユニットを作成できます。
DefaultInstance
オプションは、明示的にインスタンスを設定せずにテンプレートを有効にした場合、ユニットを有効にするインスタンスを指定します。