現在、xml-rpc コマンドで制御するために、aria2 をデーモン モードで実行しています。xml-rpc によるファイルの追加は正常に機能します。私が解決しようとしている問題は、正常にではなく突然停止した場合に、aria2 に「セッション」を再開させる方法です。
ここのマニュアルで説明されている設定「save-session-interval」を使用して、間隔を置いて 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 ファイルの代わりに「save-session-interval」を初期コマンドに追加しようとしましたが、動作は同じです。
Aria バージョンの詳細:
aria2 version 1.17.1