29 lines
630 B
Bash
Executable File
29 lines
630 B
Bash
Executable File
#!/bin/bash
|
|
|
|
set -e -u
|
|
|
|
wait_tcp_port() {
|
|
local host="${1}" port="${2}"
|
|
|
|
# see http://tldp.org/LDP/abs/html/devref1.html for description of this syntax.
|
|
local max_tries="40"
|
|
for n in `seq 1 "${max_tries}"` ; do
|
|
if { exec 6<>/dev/tcp/"${host}"/"${port}" ; } 2>/dev/null ; then
|
|
break
|
|
else
|
|
echo "$(date) - still trying to connect to ${host}:${port}"
|
|
sleep 1
|
|
fi
|
|
if [ "${n}" -eq "${max_tries}" ]; then
|
|
echo "unable to connect"
|
|
exit 1
|
|
fi
|
|
done
|
|
exec 6>&-
|
|
echo "Connected to ${host}:${port}"
|
|
}
|
|
|
|
wait_tcp_port "${1}" "${2}"
|
|
shift 2
|
|
exec "$@"
|