我目前正在以守护程序模式运行 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