如何暂停正在运行的咏叹调下载

下载大文件时,需要多次暂停下载。 可以使用wget下载大文件。 首先开始下载,然后杀死wget ,然后通过wget -c继续下载。
我想暂停下载太多次,具体取决于电源故障,网络不可用等等事件……并希望使用脚本自动执行下载。 所以按Ctrl + C不是一个选项。 我知道一个进程可以被kill -STOP "$pid"暂停kill -STOP "$pid"暂停不应该关闭与网站的连接,要么它应该等待resume命令,要么限制带宽限制到非常低的使用。

我在aria2.sourceforge.net中使用aria2c找到了这些命令,但我无法成功使用它。 这使用RPC方法。 我可以在脚本中使用它吗?
aria2.pause(gid)

此方法暂停gid表示的下载。 gid是string类型。 暂停下载的状态将暂停。 如果下载处于活动状态,则下载将置于等待队列的第一个位置。 只要状态暂停,就不会开始下载。 要将状态更改为等待,请使用aria2.unpause()方法。 此方法返回暂停下载的GID。

aria2.unpause(gid)

此方法将gid表示的下载状态从暂停更改为等待。 这使下载符合重新启动条件。 gid是string类型。 此方法返回未暂停下载的GID。

  1. 如何暂停(或限制带宽)已经运行的咏叹调下载
  2. 在脚本中是否有比aria更好的下载器
  3. 可以在脚本中使用更好的RPC方法

为此,您的aria2应该支持选项暂停 。 在man aria2c搜索--pause[=true|false] 。 它适用于aria2_1.12.0-1_i386 [oneric](及更高版本)。

首先启动RPC服务器: aria2c --enable-rpc=true (旧版本aria2c --enable-xml-rpc=true
然后使用http://localhost:6800/jsonrpc使用RPC
以下示例将http://example.org/file添加到aria2:在python控制台中键入以下内容

JSON RPC

 import urllib2, json jsonreq = json.dumps({'jsonrpc':'2.0', 'id':'qwer', 'method':'aria2.addUri', 'params':[['http://example.org/file']]}) c = urllib2.urlopen('http://localhost:6800/jsonrpc', jsonreq) c.read() '{"id":"qwer","jsonrpc":"2.0","result":"2089b05ecca3d829"}' 

以下示例暂停下载,其GID为“3”:

XML RPC

 import xmlrpclib s = xmlrpclib.ServerProxy('http://localhost:6800/rpc') s.aria2.pause('3') 

如果你得到的东西如下,你的版本的aria2不支持它。

 xmlrpclib.Fault:  

在使用aria2c --enable-xml-rpc=true ,可以使用其他选项,例如adiing文件等(使用XML RPC)。

最简单的是你可以在终端/ konsole中使用Ctrl + C快捷键来暂停下载。 在内部,它在扩展名.aria2的同一目录中创建一个临时文件,当您尝试重新下载文件时,它会从暂停的位置开始。 并且不要使用Ctrl + Z.