Jus*_*ser 5 server services transmission
由于我将 ubuntu 服务器安装从 16.04 升级到 16.10,传输守护程序服务似乎忽略了settings.json
.
症状是网页界面给了我:
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.
Run Code Online (Sandbox Code Playgroud)
但在/etc/transmission-daemon/settings.json
我们有,与升级前相同:
"rpc-whitelist": "127.0.0.1,192.168.23.*",
"rpc-whitelist-enabled": true,
Run Code Online (Sandbox Code Playgroud)
/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
Run Code Online (Sandbox Code Playgroud)
syslog service transmission-daemon restart
(我认为它通常也应该告诉我它添加到白名单的 ips:
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)
Run Code Online (Sandbox Code Playgroud)
那么从现在开始它试图从哪里获取它的配置呢?
小智 8
更新 16.04 LTS 后,systemd 不会从正确的位置加载我的传输守护程序配置文件。
我在以下位置找到了解决方法:https : //bugs.debian.org/cgi-bin/bugreport.cgi?bug=734467
我尝试使用 /etc/systemd/system/transmission.service.d/ 中的内置 *.conf 文件来覆盖 ExecStart。但是,使用 ps -ef | grep 传输 我可以看到在重新加载和重新启动后仍在使用错误的配置位置。
无奈,我编辑了
/lib/systemd/system/transmission-daemon.service
Run Code Online (Sandbox Code Playgroud)
通过附加包括正确的路径
-g /etc/transmission-daemon
Run Code Online (Sandbox Code Playgroud)
到 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
Run Code Online (Sandbox Code Playgroud)
我刚才也遇到了同样的问题;在我更改了守护程序的用户后,无论出于何种原因transmission-daemon.service
决定忽略我rpc-whitelist
的。Jim Ladd 上面的回答在某种程度上是正确的,但是在下面编辑 systemd 配置文件/lib/systemd
是一个非常糟糕的主意,因为这些编辑无法在软件包升级中幸存下来。编辑 systemd 配置的正确方法是使用systemd edit foo.service
(创建一个/etc/systemd/system/foo.service.d
与现有配置结合使用的覆盖文件)或systemd 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
Run Code Online (Sandbox Code Playgroud)
但是请注意,ExecStart
甚至不需要覆盖。transmission-daemon
识别TRANSMISSION_HOME
env var,其工作方式与-g, --config-dir
. 所以,一个更简单的覆盖:
# A simpler and more robust /etc/systemd/system/transmission-daemon.service.d/override.conf
[Service]
Environment=TRANSMISSION_HOME=/etc/transmission-daemon
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
10028 次 |
最近记录: |