トランスミッションデーモンのドロップイン置換による systemd ユーザーの変更が機能しない

トランスミッションデーモンのドロップイン置換による systemd ユーザーの変更が機能しない

そこで、少し調べたところ、systemd サービス ユニットのドロップインが存在することがわかりました。

transmission-daemonパッケージをユーザーとして実行しようとしていますpi。これが、ダウンロード先のフォルダーで適切な権限を取得する唯一の方法だからです。デフォルトでは、 として実行されますdebian-transmission。init.d を避けて、systemd アプローチを選択したいと思います。

systemd ファイル ( /lib/system/systemd/transmission-daemon.service) に記述されています:

[Unit]
Description=Transmission BitTorrent Daemon
After=network.target

[Service]
User=debian-transmission
Type=notify
ExecStart=/usr/bin/transmission-daemon -f --log-error
ExecReload=/bin/kill -s HUP $MAINPID

[Install]
WantedBy=multi-user.target

私の代替品が到着しました/etc/systemd/system/transmission-daemon.service.d/local.conf:

[Service]
User=
User=pi
Group=pi

sudo systemctl daemon-reloadおよびを実行しましたsudo systemctl restart transmission-daemon。ドロップインは にリストされsudo systemctl status transmission-daemon、アクティブとして表示されますが、デーモンが正しく実行されておらず、ブラウザで RPC 接続が機能しません。

手探りなので、助けていただけるとありがたいです。

答え1

自分で答えを見つける:

Systemd はサービスを正しく実行しているので問題ではありませんが、transmission-daemon が pi ユーザーとして実行されると、 が$HOME/.config/transmission-daemon/settings.json所有するpi:piのではなく が/etc/transmission-daemon/settings.json所有するから構成を読み取りますdebian-transmission:debian-transmission

解決策としては、設定ファイルの使用に切り替える$HOME/transmission-daemonか、-g /etc/transmission-daemon/settings.jsonドロップインで ExecStart ディレクティブを渡すことが考えられます。

関連情報