Ищу способ через bash сделать проверку доступности удаленного порта на сервере, и если порт не доступен сделать перезапуск ПО.
Беру скрипт типа:
#!/bin/bash
#copyleft michele dot mase at gmail dot com
HOST=www.google.com
PORT=81
OK=KO
TIMEOUT=3
#which is the pid of telnet
telnetpid () {
ps -ef|grep [t]elnet\ $HOST|awk '{print $2}'
}
#check if there is a hanged telnet session
sleep $TIMEOUT && [ -n «$(telnetpid)» ] && kill
$(telnetpid) && exit 1 &
#check telnet result
if telnet $HOST $PORT < /dev/null 2>&1 | grep -q Connected
then
OK=OK
else
OK=$OK
fi
echo Connection $HOST:$PORT=$OK
exit 0
Проблема в том что он подвивает на неопределенное время.
Где-то не хватает какой-то проверки, подскажите куда рыть?