Assumindo que /opt/abc/bin/stop
não bloqueia o seu script parece funcionar.
Como muru sugeriu, você poderia ignorar a variável $count
e usar o $SECONDS
incorporado. Isso levaria a um código como este:
/opt/abc/bin/stop
# Wait for 10 second
sleep 10
# Number of seconds to wait
WAIT_SECONDS=300
while pgrep abc_test > /dev/null
do
echo "server is still running. Seconds: $SECONDS"
# Wait for one second
sleep 1
# Have we exceeded $WAIT_SECONDS? If so exit the loop
if [ $SECONDS -gt $WAIT_SECONDS ]; then
break
fi
done
No caso de /opt/abc/bin/stop
DOES bloquear, basta chamá-lo no fundo como:
/opt/abc/bin/stop &