如何在完成时停止iperf服务器?

问题描述:

客户端完成后,该过程将自动关闭。我想在服务器端做同样的事情,因为我想自动化一些进程,但服务器端完成但仍然打开。如何在完成时停止iperf服务器?

使用iperf选项-t。所以它会在t秒后停止。默认的iperf客户端超时时间为10秒。所以它在那之后停止。

尝试。这里两个都会在10秒后停止。

服务器:iperf的-s -t 10

客户:iperf的-C < ip地址> -t 10

在后台启动它,等到它完全和杀死后。

iperf -s -w 2Mb -p 5001 & 
sleep 20 
pkill iperf 

我认为这取决于版本。我可以为iperf 2发言,我们最近添加了这个功能。当启动-server时,每个“服务器”,一个监听器线程和一个通信(接收器/服务器)线程最终将有两个线程。因此-t会做一些事情,它会设置监听线程超时和通信线程的时间。侦听器线程是流量线程的父级,所以它必须等待流量线程完成才能终止。

例子:假设一个问题iperf -s -t 30这将让听者周围30秒。如果没有客户在30秒内出现,“服务器”在30秒后终止。但是,如果客户端连接iperf -s -t 30后20秒,例如iperf -c <server> -t 30,那么监听器/服务器将在终止前停留20 + 30秒。 (注:客户端的-t <value>不传递给服务器,以便server -t需要比客户-t等于或大于)