После завершения процесса клиент автоматически закрывается. Я хотел бы сделать то же самое на стороне сервера, потому что я хочу автоматизировать некоторые процессы, но серверная часть заканчивается, но остается открытой.Как я могу остановить сервер iperf при его завершении?
ответ
использование iperf опция -t
. Чтобы он остановился после t
секунд. Тайм-аут клиента iperf по умолчанию - 10 секунд. поэтому он останавливается после этого.
Попробуйте. Здесь оба будут останавливаться после 10
секунд.
Сервер: Iperf -s -t 10
Заказчик: Iperf -c < IPAddress> -t 10
запустить его в фоновом режиме, подождите, пока не будет завершена, и после того, как убить его.
iperf -s -w 2Mb -p 5001 &
sleep 20
pkill iperf
Я думаю, что это зависит от версии. Я могу говорить за 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
.)