ユーザーが作成した systemd ユニット ファイルを配置する場所

ユーザーが作成した systemd ユニット ファイルを配置する場所

nginx.serviceUbuntu 16.04 で、Nginx などのsystemd ファイルをどこに置けばいいですか?

答え1

おすすめの場所は/etc/systemd/system/nginx.service

次に、次のコマンドを発行します。

systemctl enable nginx

そして最後に

systemctl start nginx

答え2

通常、Ubuntu では、パッケージで提供されるユニット ファイルは/lib/systemd/system/ディレクトリに保存されますが、/lib/systemd/system/nginx.serviceユーザーが提供したユニット ファイルやパッケージで提供されるユニット ファイルに対する変更も/etc/systemd/system/ディレクトリに保存されます。

上書きするには、次の操作を実行します。

  • ユニットファイルにパッケージで提供されている名前を付けます(例:オーバーライドする場合)/lib/systemd/system/nginx.service。ファイルを作成し/etc/systemd/system/nginx.serviceてそこにディレクティブを配置できます。

  • .confまたは、元のユニットファイルにちなんで名付けられたディレクトリに、ディレクトリ名に を追加したドロップイン スニペットを作成することもできます.d。たとえば、 という名前のファイルを作成し/etc/systemd/system/nginx.service.d/override.conf、そこにステートメントを配置することができます。


これで、コマンドを利用してすべての手動作業を実行できますsystemctl edit。つまり、必要なオーバーライド ファイルが作成されます (最初に一時ファイル (ドロップイン スニペット用の中間ディレクトリを含む) が作成され、保存するとコミットされ、rename()一時ファイルが目的の最終ファイルに作成されます)。その後は、ファイルを編集してオーバーライドを追加するだけです。

たとえば、上記のngnx.service( )のオーバーライド スニペットを作成するには、次のようにします。/lib/systemd/system/nginx.service

systemctl edit nginx.service

デフォルトでは、ファイル が使用されます/etc/systemd/system/nginx.service.d/override.conf--fullが使用される場合は、完全な置換ファイル/etc/systemd/system/nginx.serviceが使用されます (元のコンテンツが/lib/systemd/system/nginx.serviceこのファイルにコピーされます)。

もちろん一時的なものになりますが、を使用し--runtimeてスニペットを作成することもできます/run/systemd/system/(最初はドロップイン スニペット、次に全体な--runtimeので相互に排他的ではありません)。--full

使用するエディターは当然選択できますが、優先順位は次のとおりです。

$SYSTEMD_EDITOR > $EDITOR > $VISUAL > editor > nano > vim > vi

関連情報