1

我目前正在以守护程序模式运行 aria2,以便通过 xml-rpc 命令对其进行控制。通过 xml-rpc 添加文件可以正常工作。我要解决的问题是,如果 aria2 突然停止而不是优雅地停止,如何让 aria2 恢复“会话”。

我正在使用此处手册中描述的设置“保存会话间隔”,以便尝试让 aria 每隔一段时间保存到会话文件中。如果我通过 ctrl-c 中断来中断 aria,它会优雅地将挂起的下载保存到会话文件中。之后,如果我通过相同的命令重新启动 aria,它会正确恢复下载。

每 20 秒 aria2 会向控制台写入信息,表示它已经序列化了会话。Notepad++ 甚至检测到文件已被更改,但文件仍为空。

07/11 22:49:54 [NOTICE] Serialized session to 'C:\temp\aria\session.txt' successfully.

我用来启动 aria 的命令:

aria2c.exe --conf-path=C:\temp\aria\aria.conf --daemon

conf文件的内容是:

dir=C:\temp\aria
input-file=C:\temp\aria\session.txt
save-session=C:\temp\aria\session.txt
enable-rpc=true
save-session-interval=20

我正在使用的 xml-rpc 命令是从 python 调用的,如下所示:

import xmlrpclib
fileurl = "http://example.com/sample_file.txt"
s = xmlrpclib.ServerProxy('http://localhost:6800/rpc')
val = s.aria2.addUri([fileurl], {'http-user':'user', 'http-passwd':'pass'})

我尝试过的另一件事是在优雅地停止 aria 后清空会话文件(允许它将挂起的下载写入会话文件)。然后它用下载覆盖会话文件。这种行为使我相信 aria 不会将通过 xml-rpc 添加的下载保存到“会话”列表中以保存到会话文件中。

我还尝试将“保存会话间隔”添加到初始命令而不是 conf 文件,但行为是相同的。

咏叹调版本详情:

aria2 version 1.17.1
4

1 回答 1

1

我正在使用下面的 conf 文件,其中 aria 作为守护进程运行,它工作正常:

dir=/media/ExternalHd/aria
file-allocation=falloc
continue
log-level=error
max-connection-per-server=4
summary-interval=120
daemon=true
enable-rpc=true
rpc-listen-port=6800
rpc-listen-all=true
max-concurrent-downloads=2
save-session=/home/pi/Desktop/aria.txt
input-file=/home/pi/Desktop/aria.txt
log=/home/pi/Desktop/aria.log
disable-ipv6=true
disk-cache=25M
timeout=600
retry-wait=30
max-tries=50
save-session-interval=10

尝试使用上述配置并将 aria2c 作为守护进程运行,您还可以使用各种方法从桌面和移动设备访问 aria2c RPC 接口,详见此处。我正在使用移动应用程序和网络界面,它使用 aria2c v 1.16.5 保存会话

于 2013-07-18T14:27:14.683 回答