私のサービス単位ファイルはファイルで、他のファイルはディレクトリなのですか?

私のサービス単位ファイルはファイルで、他のファイルはディレクトリなのですか?

apache-httpdを実行するためにサービスユニットを作成しましたが、動作していますが、サービスユニット設定ファイルはファイルですが、ディレクトリ(/etc/systemd/system)の他のエントリがディレクトリなので心配です。ファイルは例外のようです。

ここに画像の説明を入力してください

うまくいきますが、私の定義が他の定義と異なるのはなぜですか?

私が使うものは技術ガイドのサービスユニット作成ガイドライン

答え1

.wants表示される他のディレクトリには、完全なサービスファイル(パッケージを介してインストールされたサービスに.d表示される)は含まれず、修正のみが含まれます。/lib/systemd/system

たとえば、変更のために実行している場合は、変更をsystemctl edit (servicename).service自動的に含める他の環境変数を設定したい場合があります。/etc/systemd/system/servicename.d/override.conf

この目的は、パッケージが更新されたときに変更を受け取ることができる/etc/パッケージ管理サービス定義と、管理者が行ったローカル変更を明確に分離することです。/lib/systemd/system

答え2

単位は両方文書そして目次。これ十分デバイスに関する情報は、両方の場所で配布され、読み取られます。

.serviceファイルが、、、、.targetなど.socketで終わるようにします.timer.mount

オプションのディレクトリは、などで.service.d終わります.service.requires。 include.target.wantsで終わる.d一般的なファイル。シンボリックリンクで終わり、.wantsシンボリック.requiresリンクを含むリンク。詳しくはマニュアルをお読みくださいsystemd.unit

あなたの場合、ファイルと(現在存在しない)ディレクトリの両方があります/etc/systemd。ローカル管理者であるあなたは両方のソースです。他のユニットの場合、ファイルは以下のような別の場所にあります/usr/lib/systemd/etc/systemdこれは、ファイル部分がパッケージによって提供され、ディレクトリ部分がローカル管理者として選択および変更されることを反映しています(たとえば、Wantsユニットの設定を作成するように変更)、他の特定のユニットを有効にした結果などです。

systemd のモデルはパッケージで/usr/lib/systemd次の内容を提供し、システムが実行されると次の内容が動的に生成され、次の内容はローカルシステム管理者が決定するものです。 4つの領域すべての一般的なファイル、ディレクトリ、およびシンボリックリンク(複数のサブディレクトリを含めることができます、詳細についてはマニュアルを参照)は、優先順位の規則に従って完全な単位情報にまとめられます。/usr/local/lib/systemd/run/systemd/etc/systemdsystem

関連情報