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 "$@"
 |