Как я могу остановить сервер iperf, когда он завершится?

Как только клиент завершает работу, процесс автоматически закрывается. Я хотел бы сделать то же самое в серверной части, потому что я хочу автоматизировать некоторые процессы, но серверная часть завершается, но остается открытой.


person Ander Galisteo    schedule 05.10.2016    source источник


Ответы (5)


В iperf3 вы можете просто указать параметр -1, и он автоматически закроется. Он принимает только одно соединение и завершит работу, когда оно будет завершено.

Пример: % iperf3 -s -B 192.168.20.10 -p 70011 -1

person user3480788    schedule 21.04.2019

используйте опцию iperf -t . Так что он остановится через t секунды. Время ожидания клиента iperf по умолчанию составляет 10 секунд. поэтому он останавливается после этого.

Пытаться. Здесь оба остановятся через 10 секунд.

Сервер: iperf -s -t 10

Клиент: iperf -c ‹i-адрес> -t 10

person Rilwan    schedule 11.10.2016

Я думаю, это зависит от версии. Я могу говорить за iperf 2, где мы недавно добавили эту возможность. Когда -server запускается, в конечном итоге будет два потока на «сервер», поток слушателя и поток трафика (получатель/сервер). Так что -t делает несколько вещей, он устанавливает тайм-аут потока слушателя и время потоков трафика. Поток прослушивателя является родителем потока трафика, поэтому он должен дождаться завершения потоков трафика, прежде чем он сможет завершиться.

Пример: допустим, кто-то выпускает iperf -s -t 30, который удерживает слушателя в течение 30 секунд. Если ни один клиент не появится в течение 30 секунд, «сервер» отключится через 30 секунд. Но если через 20 секунд после iperf -s -t 30 подключается клиент, например. iperf -c <server> -t 30, тогда прослушиватель/сервер будет оставаться в течение 20 + 30 секунд перед завершением. (Примечание: -t <value> клиента не передается на сервер, поэтому server -t должно быть равно или больше, чем -t клиентов.)

person rjmcmahon    schedule 24.10.2016

В серверной части iperf нет опции -t для ограничения времени. Вы можете использовать опцию -P для ограничения входящих клиентов.

Например, если вы запустите команду iperf -s -P 1, после того, как клиент завершит тест, сервер выключится.

person Onur    schedule 16.04.2019
comment
Это должен быть правильный ответ, или, точнее, iperf -s -P 1 заставит сервер выйти после завершения одного клиентского теста. - person emorris; 22.05.2020

Запустите его в фоновом режиме, подождите, пока он не завершится, и после этого убейте его.

iperf -s -w 2Mb -p 5001 &
sleep 20
pkill iperf
person Krisz    schedule 22.10.2016
comment
для меня iperf ничего не делал из сигнала TERM или Ctrl-C. В этом случае используйте pkill -KILL iperf - person JPT; 02.07.2018