首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >传输-守护进程忽略settings.json

传输-守护进程忽略settings.json
EN

Ask Ubuntu用户
提问于 2017-01-07 12:22:37
回答 5查看 12.3K关注 0票数 5

自从我将我的ubuntu服务器安装从16.04升级到16.10之后,传输守护进程服务似乎忽略了settings.json

症状是网络界面给了我:

代码语言:javascript
复制
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中,与升级前相比没有变化:

代码语言:javascript
复制
"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

代码语言:javascript
复制
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之后,syslog (我认为通常也应该告诉我它在白名单中添加了什么ips ):

代码语言:javascript
复制
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)

那么,从现在开始,它在哪里试图获得它的配置呢?

EN

回答 5

Ask Ubuntu用户

回答已采纳

发布于 2017-03-08 01:24:18

在更新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传输,我可以看到在重新加载和重新启动之后仍然使用错误的配置位置。

不情愿地,我编辑了

代码语言:javascript
复制
/lib/systemd/system/transmission-daemon.service

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

代码语言:javascript
复制
-g /etc/transmission-daemon

到ExecStart线。

代码语言:javascript
复制
[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
票数 10
EN

Ask Ubuntu用户

发布于 2019-04-28 04:07:53

刚才我也遇到了同样的问题;在更改守护进程的用户之后,transmission-daemon.service决定不管出于什么原因而忽略我的rpc-whitelist。Jim的回答在某种程度上是正确的,但是在/lib/systemd下编辑systemd配置文件是一个非常糟糕的主意,因为那些编辑无法在包升级中生存下来。编辑systemd配置的正确方法是使用systemd edit foo.service (在/etc/systemd/system/foo.service.d中创建与现有配置一起工作的覆盖文件)或使用systemd edit --full foo.service (创建完全取代/lib/systemd/版本的/etc/systemd/system/foo.service )。要替换ExecStart行,重写文件应该如下所示:

代码语言:javascript
复制
# /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

但是,请注意,甚至不需要覆盖ExecStarttransmission-daemon识别TRANSMISSION_HOME env,它的工作方式与-g, --config-dir相同。因此,一个更简单的覆盖:

代码语言:javascript
复制
# A simpler and more robust /etc/systemd/system/transmission-daemon.service.d/override.conf
[Service]
Environment=TRANSMISSION_HOME=/etc/transmission-daemon
票数 6
EN

Ask Ubuntu用户

发布于 2019-04-02 17:34:01

在从16.04升级到18.04之后,我也有了同样的问题。@JimLadd的回答对我有效,但我只想添加一下,您需要在编辑完文件后重新启动守护进程:

代码语言:javascript
复制
systemctl daemon-reload
票数 2
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/869046

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档