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/
RequiresMountsFor
systemctl edit
override.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
独自のカスタムユニットファイルで作業できます。ここに配置したユニットファイルは、パッケージが提供するファイルを上書きし、アップグレード時に置き換えられません。