.serviceを修正して継続的に維持するにはどうすればよいですか? [コピー]

.serviceを修正して継続的に維持するにはどうすればよいですか? [コピー]

transmission-daemonサービスとして実行する Debian 拡張機能があります。

トレントファイルをインストールに保存します/mnt/external-disk。ディスクにファイルシステムがあり、ext4それをuuidにマップします。/etc/fstab

問題は次のとおりです。

起動時にサービスが開始transmission-daemonされると、外部ファイルシステムがマウントされていることを確認しないため、そのファイルが見つからず、データエラーが発生し、急流ファイルはシードされませんが、サービスが開始されます。

systemdこの問題を解決するために文書を確認し、欠落しているものが見つかりました。

ファイルセクションの行はRequiresMountsFor=下のツリーにあります。マウントポイントへのパスを含む対応する行を追加した後、問題が消えてサービスが正常に機能しました。コンピュータを再起動すると、サービスが正常に動作し、ファイルがシードされます。[Unit]transmission-daemon.service/lib/systemd//mnt/external-disk

apt-get dist-upgradeこれはパッケージが関連する場所を見つけるまで機能し、その後停止しました。transmission-daemonそれで確認してみると、transmission-daemon.service私が変更した内容が欠けていました。

RequiresMountsFor=正しいパスで行を再追加したところ、問題は再び解決されました。

私の質問は:この修正をどのように持続させることができますか?

答え1

この単位をの単位で上書きする必要があります/etc。最も簡単な方法は以下を使用することですsystemctl edit

sudo systemctl edit transmission-daemon

エディタが開き、オーバーレイクリップを作成できます。

コードスニペットをオーバーライドすると、パッケージ単位の将来の変更が考慮されます(/lib)。参照はパッケージ単位になり、上書きが一番上に適用されます。あなたの場合は、そのセクションとその行のみを含む.confファイルのみを使用してください。これは適切な場所にファイルを作成することによって行われます。/etc/systemd/system/transmission-daemon.service.d/RequiresMountsForsystemctl editoverride.conf

または、/lib/systemd/system/transmission-daemon.serviceセル全体をコピーして/etc/systemd/system編集することもできます。繰り返しますが、systemctl editこの問題を解決するオプションがあります--full

「例 2. ベンダー設定の上書き」を探します。systemd.unit文書もっと学ぶ。

答え2

/etc/systemdこれを(または適切なサブディレクトリ)にコピーし、/etc/systemdコピーを変更します。

/lib/systemdパッケージング用のユニットファイルです。 systemd(またはそれを提供するパッケージ)がアップグレードされると上書きされます。

/etc/systemd独自のカスタムユニットファイルで作業できます。ここに配置したユニットファイルは、パッケージが提供するファイルを上書きし、アップグレード時に置き換えられません。

関連情報