Transmission: 升级到 2.93 后无法启动传输守护进程

创建于 2018-03-05  ·  17评论  ·  资料来源: transmission/transmission

在我将 Ubuntu 16.04 中的传输升级到 2.93 之后
当守护进程尝试启动时,我收到下一个错误。

transmission-daemon.service - Transmission BitTorrent Daemon
   Loaded: loaded (/lib/systemd/system/transmission-daemon.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since lun 2018-03-05 17:31:32 CET; 8s ago
  Process: 2991 ExecStart=/usr/bin/transmission-daemon -f --log-error (code=exited, status=217/USER)
 Main PID: 2991 (code=exited, status=217/USER)

mar 05 17:31:32 domus.local systemd[1]: Starting Transmission BitTorrent Daemon...
mar 05 17:31:32 domus.local systemd[1]: transmission-daemon.service: Main process exited, code=exited, status=217/USER
mar 05 17:31:32 domus.local systemd[1]: Failed to start Transmission BitTorrent Daemon.
mar 05 17:31:32 domus.local systemd[1]: transmission-daemon.service: Unit entered failed state.
mar 05 17:31:32 domus.local systemd[1]: transmission-daemon.service: Failed with result 'exit-code'.

我尝试删除软件包,清除并重新安装,但问题仍然存在。

我在 Ubuntu 论坛上看到了一个相关的帖子
https://ubuntuforums.org/showthread.php?t=2386355

invalid

最有用的评论

就像其他寻求帮助的人2 cents

使用以下内容创建文件/etc/systemd/system/transmission-daemon.service.d/override.conf
[Service] User= Type= Type=simple User=debian-transmission Group=debian-transmission

然后使用systemctl daemon-reload重新加载 systemd 配置

最后用systemctl start transmission-daemon.service再次启动服务

之后传输 2.93 完美运行。

Ubuntu 论坛的原始来源

所有17条评论

你好,
有两个问题,如果您安装 PPA 版本,守护程序服务文件中的用户现在是“传输”而不是“debian-transmission”,现在还有一个 systemd 服务文件而不是导致冲突的 init.d 文件,所以删除 init.d 文件。

修复此问题后,守护程序启动,但一两分钟后退出并出现以下超时错误:

● transmission-daemon.service - Transmission BitTorrent Daemon
   Loaded: loaded (/etc/systemd/system/transmission-daemon.service; disabled; vendor preset: enabled)
   Active: failed (Result: timeout) since Mon 2018-03-05 18:44:41 IST; 4min 49s ago
  Process: 3486 ExecStart=/usr/local/bin/transmission-daemon -f --log-error (code=exited, status=0/SUCCESS)
 Main PID: 3486 (code=exited, status=0/SUCCESS)

Mar 05 18:43:10 cribstore systemd[1]: Starting Transmission BitTorrent Daemon...
Mar 05 18:43:12 cribstore transmission-daemon[3486]: [2018-03-05 18:43:12.106] UDP Failed to set receive buffer: requested 4194304, got 425984 (/root/trans/Transmission/libtransmission/tr-udp.c:97)
Mar 05 18:43:12 cribstore transmission-daemon[3486]: [2018-03-05 18:43:12.106] UDP Failed to set send buffer: requested 1048576, got 425984 (/root/trans/Transmission/libtransmission/tr-udp.c:105)
Mar 05 18:44:41 cribstore systemd[1]: transmission-daemon.service: Start operation timed out. Terminating.
Mar 05 18:44:41 cribstore systemd[1]: Failed to start Transmission BitTorrent Daemon.
Mar 05 18:44:41 cribstore systemd[1]: transmission-daemon.service: Unit entered failed state.
Mar 05 18:44:41 cribstore systemd[1]: transmission-daemon.service: Failed with result 'timeout'.

该问题存在于 PPA 上,从源代码构建时,我使用的是 Ubuntu 16.04.4 LTS。

希望这有助于指出正确的方向。

哦谢谢!
我删除了 PPA 文件,然后重新安装。
它完美地工作。

谢谢!!

你好,

如果我没记错的话,通过删除 PPA,您从 Ubuntu 存储库 2.84 版安装了早期版本

是的,是2.84版本

transmission-daemon:
  Instalados: 2.84-3ubuntu3.1

如果我切换到传输用户并运行 /usr/local/bin/transmission-daemon --log-error
它可以工作,所以问题在于在服务文件中执行前台的 -f 开关。

这是为了调试更精确。

如果我切换到传输用户并运行 /usr/local/bin/transmission-daemon --log-error
它可以工作,所以问题在于在服务文件中执行前台的 -f 开关。

服务是继续运行还是在一两分钟后停止? 从 systemd 启动脚本中删除前台标志有什么负面影响吗?

使用带有 -f 的原始服务文件,它会运行一两分钟然后停止。

如果服务文件中没有 -f,它甚至不会启动。

请使用论坛寻求支持。

TalZiv 不要求支持。 他在向你解释你的包裹坏了。

是的,这似乎更像是一个错误而不是支持问题。 2.93 在 Ubuntu 16.04 中崩溃。 我们可以发布任何日志来帮助您确定问题所在吗?

请重新打开这个,2.93版本有问题。

可以确认,这个错误也是在昨晚从 PPA 更新到 2.93 后开始的。

用户更改为debian-transmissiontransmission/lib/systemd/system/transmission-daemon.service允许服务开始几分钟,但随后的错误崩溃:

● transmission-daemon.service - Transmission BitTorrent Daemon
   Loaded: loaded (/lib/systemd/system/transmission-daemon.service; enabled; vendor preset: enabled)
   Active: failed (Result: timeout) since Mon 2018-03-05 17:20:02 MST; 7s ago
  Process: 16433 ExecStart=/usr/bin/transmission-daemon -f --log-error (code=exited, status=0/SUCCESS)
 Main PID: 16433 (code=exited, status=0/SUCCESS)

Mar 05 17:18:31 download systemd[1]: Starting Transmission BitTorrent Daemon...
Mar 05 17:20:02 download systemd[1]: transmission-daemon.service: Start operation timed out. Terminating.
Mar 05 17:20:02 download systemd[1]: Failed to start Transmission BitTorrent Daemon.
Mar 05 17:20:02 download systemd[1]: transmission-daemon.service: Unit entered failed state.
Mar 05 17:20:02 download systemd[1]: transmission-daemon.service: Failed with result 'timeout'.

transmission-daemon.service文件的ExecStart=/usr/bin/transmission-daemon -f --log-error行中删除-f标志会导致服务立即失败,而不是几分钟:

download<strong i="16">@download</strong>:/etc/init.d$ sudo nano /lib/systemd/system/transmission-daemon.service 
download<strong i="17">@download</strong>:/etc/init.d$ systemctl daemon-reload
==== AUTHENTICATING FOR org.freedesktop.systemd1.reload-daemon ===
Authentication is required to reload the systemd state.
Authenticating as: download,,, (download)
Password: 
==== AUTHENTICATION COMPLETE ===
download<strong i="18">@download</strong>:/etc/init.d$ systemctl start transmission-daemon.service
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to start 'transmission-daemon.service'.
Authenticating as: download,,, (download)
Password: 
==== AUTHENTICATION COMPLETE ===
download<strong i="19">@download</strong>:/etc/init.d$ systemctl status transmission-daemon
● transmission-daemon.service - Transmission BitTorrent Daemon
   Loaded: loaded (/lib/systemd/system/transmission-daemon.service; enabled; vendor preset: enabled)
   Active: inactive (dead) since Mon 2018-03-05 17:30:36 MST; 7s ago
  Process: 16605 ExecStart=/usr/bin/transmission-daemon --log-error (code=exited, status=0/SUCCESS)
 Main PID: 16605 (code=exited, status=0/SUCCESS)

journalctl -xe输出,仅更改了用户名且-f标志完好无损( journalctl -xe显示没有-f删除的信息):

Mar 05 17:33:11 download systemd[1]: Starting Transmission BitTorrent Daemon...
-- Subject: Unit transmission-daemon.service has begun start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit transmission-daemon.service has begun starting up.
Mar 05 17:33:23 download transmission-daemon[16670]: [2018-03-05 17:33:23.435] UDP Failed to set receive buffer: requested 4194304, got 425984 (tr-udp.c:84)
Mar 05 17:33:23 download transmission-daemon[16670]: [2018-03-05 17:33:23.437] UDP Failed to set send buffer: requested 1048576, got 425984 (tr-udp.c:95)
Mar 05 17:34:41 download systemd[1]: transmission-daemon.service: Start operation timed out. Terminating.
Mar 05 17:34:41 download transmission-daemon[16670]: Closing transmission session... done.
Mar 05 17:34:41 download systemd[1]: Failed to start Transmission BitTorrent Daemon.
-- Subject: Unit transmission-daemon.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit transmission-daemon.service has failed.
-- 
-- The result is failed.

在此问题解决之前,似乎唯一的选择是回滚到 2.84。

  1. 我们不管理也不对ppa:transmissionbt/ppa 上的内容负责
  2. OP 链接的论坛主题有一个修复:

    • 将服务类型更改为“简单”: ppa:transmissionbt/ppa 中的传输守护程序是在不支持 systemd 的情况下构建的(尝试objdump -T /usr/bin/transmission-daemon | fgrep sd_ ),这意味着在包提供的单元文件中指定的“通知”类型不起作用(systemd 正在等待守护进程通知它,但守护进程从不这样做)

    • 将用户/组更改为“debian-transmission”:我们存储库中的服务文件(daemon/transmission-daemon.service)中有“transmission”用户; 显然,我们不能将其更改为“debian-transmission”,因为此用户名是特定于 Debian 的(而 Ubuntu 基于 Debian),因此下游发行版通常会修补文件或提供自己的文件以适合其发行版,这未在ppa:transmissionbt/ppa 中完成(与您发行版中的官方 2.84 软件包相比)

因此,此问题保持关闭状态。 如果您想提出问题,请在负责ppa:transmissionbt/ppa 的人员可以听到您的声音的地方进行。

请不要固执,如果你读过我的帖子,你会看到我说过这个问题在我从源代码构建时也会发生。

我将在我的源代码构建中检查上面的解决方案并报告。

编辑
问题确实是sd_notify。 在 github 构建的源守护进程二进制文件上运行objdump -T /usr/bin/transmission-daemon | fgrep sd_没有返回任何结果,问题是按照这里的构建说明传输/wiki/Building-Transmission特别是 ubuntu 的先决条件部分没有提到apt install libsystemd-dev和因此,当从源代码构建时,它找不到 systemd h 文件,也不会使用 sd_notify 构建和编译,并且服务失败。

总而言之,在 Ubuntu 上从源代码构建并使用 systemd 时,您必须安装 libsystemd-dev。 传输维基文档中缺少这一点,这可能是 PPA 包失败的原因。

现在可以关闭问题了,谢谢您的时间。

就像其他寻求帮助的人2 cents

使用以下内容创建文件/etc/systemd/system/transmission-daemon.service.d/override.conf
[Service] User= Type= Type=simple User=debian-transmission Group=debian-transmission

然后使用systemctl daemon-reload重新加载 systemd 配置

最后用systemctl start transmission-daemon.service再次启动服务

之后传输 2.93 完美运行。

Ubuntu 论坛的原始来源

@MarcosBL你有两个空选项,这是行不通的。
正确的配置是:

[Service]
Type=simple
User=debian-transmission
Group=debian-transmission

刚刚尝试了@MarcosBL修复和@satter的更正的混合,如下所示:

  1. 创建目录,然后放置文件(如果您不是 root,则需要 sudo):
    sudo mkdir /etc/systemd/system/transmission-daemon.service.d/ && sudo nano /etc/systemd/system/transmission-daemon.service.d/override.conf

  2. 把它放在你刚刚打开的配置文件中:

[Service]
Type=simple
User=debian-transmission
Group=debian-transmission
  1. 重启一切
    sudo systemctl daemon-reload && sudo systemctl start transmission-daemon.service

给了我一个正在运行的传输实例👍

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

fad1 picture fad1  ·  6评论

boingo-00 picture boingo-00  ·  3评论

akosmaroy picture akosmaroy  ·  6评论

crozone picture crozone  ·  6评论

after1990s picture after1990s  ·  3评论