命令退出码 0 到 32 对照表:失败原因一眼看懂
读取方式
aria2 一次会话可能遇到多个错误,退出码反映的是最后遇到的那个错误。脚本里这样判断:
aria2c "下载直链"
echo %ERRORLEVEL% # Windows CMD
echo $? # Linux / macOS
注意:已完成的下载中后来发生的错误不计入退出码。
全表(对照官方手册)
| 退出码 | 含义 |
|---|---|
| 0 | 全部下载成功 |
| 1 | 未知错误 |
| 2 | 超时 |
| 3 | 资源未找到 |
| 4 | "资源未找到"次数达到 --max-file-not-found 设定 |
| 5 | 速度低于 --lowest-speed-limit,下载被中止 |
| 6 | 网络问题 |
| 7 | 退出时队列中还有未完成任务(配合 --save-session 可恢复) |
| 8 | 需要续传但服务器不支持续传 |
| 9 | 磁盘空间不足 |
| 10 | 分块长度与 .aria2 控制文件不一致(--allow-piece-length-change 相关) |
| 11 | 同一文件正在被 aria2 下载 |
| 12 | 同一 info hash 的种子正在被下载 |
| 13 | 文件已存在(--allow-overwrite 相关) |
| 14 | 文件重命名失败(--auto-file-renaming 相关) |
| 15 | 无法打开已有文件 |
| 16 | 无法创建新文件或截断已有文件 |
| 17 | 文件读写 I/O 错误 |
| 18 | 无法创建目录 |
| 19 | 域名解析失败 |
| 20 | Metalink 文档解析失败 |
| 21 | FTP 命令失败 |
| 22 | HTTP 响应头异常 |
| 23 | 重定向次数过多 |
| 24 | HTTP 认证失败 |
| 25 | bencode 解析失败(通常是 .torrent 文件问题) |
| 26 | .torrent 文件损坏或缺失必要信息 |
| 27 | 磁力 URI 格式错误 |
| 28 | 参数错误或参数取值异常 |
| 29 | 远端服务器过载或维护中 |
| 30 | JSON-RPC 请求解析失败 |
| 31 | 保留,未使用 |
| 32 | 校验失败(checksum) |
快速定位
- 2 / 6 / 19:网络与解析层——先测网络、DNS,检查代理(代理设置);
- 3 / 4 / 8:源的问题——换镜像、多源重试(失败重试);
- 9 / 15 / 16 / 17 / 18:本地磁盘与权限;
- 13 / 14:文件名冲突,见指定文件名;
- 25 / 26 / 27:种子/磁力输入的问题;
- 28:命令拼写,
aria2c --help=#all对照; - 30:RPC 调用格式,见RPC 方法速查。
退出码 7 的恢复姿势见后台常驻。