web-dev-qa-db-ja.com

UbuntuおよびRHELでのsystemdユニットファイルの一般的な場所

Systemdサービスのリストのスクリプト形式のインストールを作成したいと思います。このインストールは、Ubuntu(バージョン16.04以降)とRHEL/CentOS(バージョン7.2以降)の両方をサポートする必要があります。

私は RHEL docs を読み、ユニットファイルを格納できる3つのパスを見つけました。これらのパスは次のとおりです。

  • / usr/lib/systemd/system /
  • / lib/systemd/system /
  • / etc/systemd/system

これらの基準を満たすサービスの正しい場所は何ですか?

  • ユニットファイルは、非システムレベルのサービス(アプリケーション固有のサービス)用にあります
  • 既存のOSレベルのサービスは上書きされません
  • 場所はUbuntuとRHEL/CentOSで同じです
4
Marged

デフォルトのRed Hatディストリビューションでは、/lib/usr/libへのシンボリックリンクですが、Ubuntuではこれらの場所が異なるようです。

systemdのドキュメントによると/usr/lib/systemd/system/は、ユーザーが編集せず、代わりにパッケージを介して提供および更新される上流のユニットファイルを保持するように指定されています。

/etc/systemd/systemは、ユーザー指定のユニットファイルがある場所として指定されます。パッケージは/etc/systemd/systemの内容をオーバーライドまたは更新しないでください。 /etc/systemd/systemを使用して、既存のユニットファイルを上書きすることもできます。

したがって、/etc/systemd/systemを使用することは、異なるディストリビューション間で最も互換性があるはずです。

5
GracefulRestart