Запустите одну и ту же программу несколько раз с задержкой, используя bash - PullRequest
0 голосов
/ 18 мая 2018

Я пишу bash-скрипт для проверки моего TCP-сервера с несколькими подключениями.Сценарий должен запускать клиент несколько раз.Вот что я сделал до сих пор:

#!/bin/bash

toport=8601
for ((port = 8600; port < 8610; port++));
do
        client 10.xml &
        replace $port $toport -- "10.xml" #modifying the port in the xml file
        ((toport=toport+1))
done

Поскольку это происходит слишком быстро, большинству клиентов не хватает времени для подключения к серверу.Поэтому я добавил sleep 1 в цикл следующим образом:

#!/bin/bash

toport=8601
for ((port = 8600; port < 8610; port++));
do
        client 10.xml &
        replace $port $toport -- "10.xml" #modifying the port in the xml file
        ((toport=toport+1)) 
        sleep 1

done

Но по какой-то причине это становится еще хуже, поскольку ни один клиент больше не может подключиться к серверу.У вас есть идеи, почему?

1 Ответ

0 голосов
/ 18 мая 2018

В вашем скрипте вы запускаете клиент в фоновом режиме и помещаете оператор sleep в конце цикла, измените его, как показано ниже, или запустите ваш клиент на переднем плане вместо заднего плана

    client 10.xml &
    sleep 3
    replace $port $toport -- "10.xml" #modifying the port in the xml file
    ((toport=toport+1))
    #sleep 1
...