我目前正在后台程序模式下运行aria2,以便通过xml rpc命令控制它。通过xml-rpc添加文件可以正常工作。我试图解决的问题是,如果“会话”突然停止,而不是优雅地停止,如何让aria2恢复“会话”。
我正在使用手册here中描述的设置“保存会话间隔”,以便尝试让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添加的下载保存到“会话”列表中以保存到会话文件。
我也尝试过将“save session interval”添加到初始命令而不是conf文件中,但是行为是相同的。
Aria版本详细信息:aria2 version 1.17.1