如何在iperf服务器运行完成后停止它?

12

客户端完成进程后会自动关闭。我希望在服务器端也能做同样的事情,因为我想自动化一些过程,但服务器端完成后仍然保持打开状态。

5个回答

4
在iperf的服务器端,没有用于时间限制的-t选项。您可以使用-P选项来限制传入客户端。
例如,如果您运行命令iperf -s -P 1,当客户端完成测试后,服务器将关闭自身。

1
这应该是正确答案,更具体地说,iperf -s -P 1 将导致服务器在完成一个客户端测试后退出。 - emorris
我正在使用 iperf3,在我的情况下,我会像这样启动服务器:iperf3 -s -1。也许在 iperf 中是一样的?即:不是 -P 1,而只是 -1 - FlexMcMurphy

4

在iperf3中,您可以只给出-1参数,它将自动关闭。它只接受一个连接,并在完成时退出。

示例: % iperf3 -s -B 192.168.20.10 -p 70011 -1


3
我认为这取决于版本。我可以谈论最近增加了此功能的 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。)

2

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

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

服务器:iperf -s -t 10

客户端:iperf -c <ipaddress> -t 10


1

在后台启动它,等待其完成后再终止它。

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

1
对我来说,当从TERM信号或Ctrl-C发出命令时,iperf没有作出任何反应。在这种情况下,请使用pkill -KILL iperf - JPT

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接