Witam,

Potrzebuje, korzystajac z polecenia ping, wyslac kilkadziesiat zapytan icmp
do
hostow, ale z ustawionym timeout na 100ms. Standardowo program ping
umozliwia
ustalenie timeout w sekundach, co jest dla mnie przeszkoda. Do tej pory
uzywalem
przerobionego fping, ale niestety musze wykonac to samo zadanie na
klasycznym ping.

Probowalem wykorzystac konstrukcje typu:

IP_TAB=(
   192.168.0.200
   192.168.0.20
   192.168.0.100
   192.168.0.10
)

SendICMP()
{
   local IP="${1}"
   local BIN="ping"
   local OPT="-n -c 1"
   local TIMEOUT="100000"

   $BIN $OPT $IP &
   PID=$!
   usleep $TIMEOUT
   kill -HUP $PID 2>/dev/null
}

for IP in [EMAIL PROTECTED]; do
   echo "[$IP]"
   SendICMP "$IP"
done

echo "Koniec"
read; exit

Jednak z mizernym skutkiem. Potrzebuje rowniez, aby rezultat dzialania ping
zapisany byl w zmiennej:

RET=`$BIN $OPT $IP` &

Ale wtedy nie uzyskam PID procesu wykonujacego ping. Dodatkowy problem
sprawia kill w
chwili, gdy proces ping zakonczyl wczesniej swoje dzialanie niz ustalony
przez usleep timeout.

Sprawdzalem rowniez mozliwosci sygnalu SIGCHLD oraz SIGALRM, ale na razie
nieskutecznie.

--
Marcin





Odpowiedź listem elektroniczym