c ++ 응용 프로그램 서버가 포트 8080에서 실행되는 컴퓨터에서 아래 셸 스크립트를 실행하고 있으며 셸 스크립트에서 URL을 실행하고 해당 URL에서 오는 응답을 DATA 변수에 저장합니다.
그러나 동일한 앱 서버가 다운되면 URL을 실행할 수 없으며 Retrying Again
30 초 동안 인쇄 및 휴면 상태를 유지 한 다음 동일한 URL을 다시 실행합니다.
#!/bin/bash
HOSTNAME=$hostname
DATA=""
RETRY=15
echo $HOSTNAME
while [ $RETRY -gt 0 ]
do
DATA=$(wget -O - -q -t 1 http://$HOSTNAME:8080/beat)
if [ $? -eq 0 ]
then
break
else
echo "Retrying Again" >&2
# restart the server
let RETRY-=1
sleep 30
fi
done
echo "Server is UP"
그리고 여기 HOSTNAME
위의 쉘 스크립트를 실행하는 서버의 로컬 호스트 이름이 있습니다.
문제 설명:-
이제 내가하려고하는 것은 서버가 다운 된 경우 Retrying Again
포트 8080
가 열려 있는지 여부를 확인한 후에 인쇄하는 것 $HOSTNAME
입니다. 그렇지 않은 경우 서버가 다운되었음을 의미 하므로이 명령을 실행하여 서버를 다시 시작한 다음 위의 셸 스크립트에 표시된 것처럼 30 초 동안 휴면 상태입니다.
/opt/app/test/start_stop.sh start
위의 쉘 스크립트에서 이것이 가능합니까?
우분투 12.04 에서이 쉘 스크립트를 실행 중입니다.
lsof -i :8080 -sTCP:LISTEN
콘솔에서 아무것도 얻지 못하지만 이것을 시도하면netstat -tulpn | grep :8080
포트 8080에서 실행중인 프로세스를 얻는 이유는 무엇입니까?