使用bash延迟多次启动相同的程序

时间:2018-05-18 09:55:00

标签: shell server client sleep

我正在编写一个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 :(得分:1)

在您的脚本中,您在后台运行客户端,并将sleep语句放在循环的末尾,如下所示修改它,或者在前台而不是背景中运行客户端

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