Поскольку вы находитесь в среде Unix, вы всегда можете создать, а затем вызвать скрипт оболочки для обработки циклов и ожидания.Но я удивлен, что вы не можете сделать это внутри php.
Кроме того, я не уверен в вашей пробной команде ping, у двух разных сред, которые я проверял, кажется, есть разные значения для опций, которые выупомянуть, чем вы, кажется, намерены.Попробуйте man ping
ИЛИ ping --help
Сценарий ниже должен дать вам основу для реализации ping-повтора, но я не могу тратить на это много времени.
cat pingCheck.sh
#! /bin/bash -vx
IPaddr=$1
: ${maxPingTries:=3}
echo "maxPingTries=${maxPingTries}"
pingTries=0
while ${keepTryingToPing:-true} ; do
if ping -n 3 -r 1 ${IPaddr} ;then
keepTryingToPing=false
else
sleep ${sleepSecs:-3}
if (( ++pingTries >= maxPingTries )) ; then
printf "Execeeded count on ping attempts = ${maxPingTries}\n" 1>&2
keepTryingToPing=false
fi
fi
done
Надеюсь, это поможет.
PS, поскольку вы, кажется, являетесь новым пользователем, если вы получите ответ, который поможет вам, не забудьте пометить его как принятый и / или дать ему + (или -) какполезный ответ.