I’m working on a project where I need to spin up some EC2 instances and deploy code to them over SSH which requires that I know when SSH is available. To do this, I’ve written a little PHP snippet that will connect to the server via TCP port 22 and loop until the service is available:
$address = "10.3.1.2" ;
$port = 22 ;
$sleeptime = 1 ;
$resource = socket_create( AF_INET, SOCK_STREAM, SOL_TCP ) ;
while ( ! @socket_connect( $resource, $address, $port ) ) {
print "not ready\n" ;
sleep( $sleeptime ) ;
}
print "ready\n" ;
Note the @ sign in front of the socket_connect function call to suppress PHP Warnings when it fails. This is because I expect it to fail 99% of the time.
Leave a Reply