transmission-daemon 忽略 settings.json

transmission-daemon 忽略 settings.json

自从我将我的 ubuntu 服务器安装从 16.04 升级到 16.10 后,transmission-daemon 服务似乎忽略了settings.json

症状是 Web 界面给我:

403: Forbidden

Unauthorized IP Address.

Either disable the IP address whitelist or add your address to it.

If you're editing settings.json, see the 'rpc-whitelist' and 'rpc-whitelist-enabled' entries.

/etc/transmission-daemon/settings.json升级后,我们仍保留以下不变的内容:

"rpc-whitelist": "127.0.0.1,192.168.23.*",
"rpc-whitelist-enabled": true,

/var/lib/transmission-daemon/.config/transmission-daemon/settings.json还指出/etc/transmission-daemon/settings.json

jast@achilles:/etc/transmission-daemon$ sudo ls -l /var/lib/transmission-daemon/.config/transmission-daemon/
lrwxrwxrwx 1 root root 38 Sep  5 12:56 settings.json -> /etc/transmission-daemon/settings.json

完成后,系统日志service transmission-daemon restart(我认为它通常还应该告诉我它将哪些 IP 添加到白名单中:

Jan  7 13:16:37 achilles transmission-daemon[4087]: Closing transmission session... done.
Jan  7 13:16:38 achilles transmission-daemon[5025]: [2017-01-07 13:16:38.552] UDP Failed to set receive buffer: requested 4194304, got 425984 (tr-udp.c:84)
Jan  7 13:16:38 achilles transmission-daemon[5025]: [2017-01-07 13:16:38.552] UDP Failed to set send buffer: requested 1048576, got 425984 (tr-udp.c:95)
Jan  7 13:16:38 achilles transmission-daemon[5025]: [2017-01-07 13:16:38.552] UDP Failed to set receive buffer: requested 4194304, got 425984 (tr-udp.c:84)
Jan  7 13:16:38 achilles transmission-daemon[5025]: [2017-01-07 13:16:38.552] UDP Failed to set send buffer: requested 1048576, got 425984 (tr-udp.c:95)

那么它现在尝试从哪里获取其配置?

答案1

更新 16.04 LTS 后,systemd 不会从正确的位置加载我的 transmission-daemon 配置文件。

我找到了一个解决方法:https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=734467

我尝试在 /etc/systemd/system/transmission.service.d/ 中插入 *.conf 文件来覆盖 ExecStart。但是,使用 ps -ef | grep transmission 我发现在重新加载和重新启动后仍然使用了错误的配置位置。

我很不情愿地编辑了

/lib/systemd/system/transmission-daemon.service

通过附加来包含正确的路径

-g /etc/transmission-daemon

到 ExecStart 行。

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

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

[Install]
WantedBy=multi-user.target

答案2

我刚才遇到了同样的问题;在更改守护进程的用户后,出于某种原因transmission-daemon.service决定忽略我。Jim Ladd 上面的回答有点正确,但编辑下面的 systemd 配置文件是一个非常糟糕的主意,因为这些编辑无法在软件包升级后保留下来。编辑 systemd 配置的正确方法是使用(这会创建一个与现有配置一起工作的覆盖文件)或(这会创建一个完全替换版本的文件)。要替换该行,您的覆盖文件应如下所示:rpc-whitelist/lib/systemdsystemd edit foo.service/etc/systemd/system/foo.service.dsystemd edit --full foo.service/etc/systemd/system/foo.service/lib/systemd/ExecStart

# /etc/systemd/system/transmission-daemon.service.d/override.conf
[Service]
ExecStart=  # Clear existing ExecStart
ExecStart=/usr/bin/transmission-daemon -f --log-error -g /etc/transmission-daemon

但请注意,覆盖ExecStart甚至不是必需的。transmission-daemon识别TRANSMISSION_HOME环境变量,其工作原理与相同-g, --config-dir。因此,更容易覆盖:

# A simpler and more robust /etc/systemd/system/transmission-daemon.service.d/override.conf
[Service]
Environment=TRANSMISSION_HOME=/etc/transmission-daemon

答案3

从 16.04 升级到 18.04 后,我遇到了同样的问题。@JimLadd 的答案对我有用,但我只想补充一点,您需要在编辑文件后重新启动守护程序:

systemctl daemon-reload

答案4

自从我在 16.04 上安装以来,我遇到了同样的问题,而之前在 14.04 上运行良好。看看这个:http://www.htpcguides.com/install-transmission-bittorrent-client-on-ubuntu-15-x/- 步骤 #4、#5 和 #6。基本上,您需要修改 systemd 脚本变量。我知道这是从 14.04 到 16.04 发生的变化,所以如果以前有效,则不适用于您,但值得一试。

相关内容