クライアントが終了すると、プロセスは自動的に閉じられます。一部のプロセスを自動化したいので、サーバー側でも同じことをしたいのですが、サーバー側は終了しますが、開いたままです。
iperfオプション-t
を使用します。 t
秒後に停止するようにします。デフォルトのiperfクライアントタイムアウトは10秒です。その後停止します。
試してみてください。ここでは、両方とも10
秒後に停止します。
サーバー:iperf -s -t 10
クライアント:iperf -c <ipaddress> -t 10
バージョンにもよると思います。私は iperf 2 最近この機能を追加した場所について話すことができます。 -server
が起動されると、最終的には「サーバー」ごとにリスナースレッドとトラフィック(レシーバー/サーバー)スレッドの2つのスレッドが存在します。したがって、-t
はいくつかのことを行い、リスナースレッドのタイムアウトとトラフィックスレッドの時間を設定します。リスナースレッドはトラフィックスレッドの親であるため、トラフィックスレッドが完了するのを待ってから終了する必要があります。
例:リスナーを30秒間維持するiperf -s -t 30
を発行するとします。 30秒以内にクライアントが存在しない場合、「サーバー」は30秒後に終了します。ただし、iperf -s -t 30
の20秒後にクライアントが接続した場合、たとえばiperf -c <server> -t 30
の場合、リスナー/サーバーは終了する前に20 +30秒間留まります。 (注:クライアントの-t <value>
はサーバーに渡されないため、server -t
はクライアントの-t
以上である必要があります。)
バックグラウンドで開始し、完了するまで待ち、その後強制終了します。
iperf -s -w 2Mb -p 5001 &
sleep 20
pkill iperf
Iperf3では、-1パラメーターを指定するだけで、自動的に閉じます。 1つの接続のみを受け入れ、それが終了すると終了します。
例:%iperf3 -s -B 192.168.20.10 -p 70011 -1
Iperfのサーバー側には、時間制限のための-t
オプションはありません。 -p
オプションを使用して、着信クライアントを制限できます。
たとえば、iperf -s -P 2
コマンドを実行すると、2つのクライアントがテストを終了した後、サーバーは自動的にシャットダウンします。