2014-09-12 1 views
1

응용 프로그램의 오류로 인해 & 응용 프로그램이 실행 중인지 또는 작동 중지되었는지 확인하고 싶습니다. 프로세스 ID를 사용하여 서버를 모니터링 할 수 있지만 실행 가능한 응용 프로그램이 있지만 서버가 실행 중일 경우 &이 실행 중입니다.wheather 애플리케이션을 확인하는 방법은 서버에서 실행되고 있습니까?

http://10.1.1.1:8080/test과 같이 애플리케이션 URL을 모니터링하고 싶습니다. DNS 서버가 아니기 때문에 URL을 ping 할 수 없습니다.

그래서 응용 프로그램 URL을 모니터링하는 방법이 잘 작동하는지 또는 어떤 오류가 발생하는지 확인하십시오. 제발 조언을해라.

답변

1

나는 wget와 이것을 할 것이다. 시도 횟수로 구성해야하며 수용 가능한 응답이 무엇이든지간에 low-ish 시간 초과 값도 권장합니다. 페이지를 다운로드 할 수 있으면 0을 반환하고 그렇지 않으면 0이 아닌 값을 반환합니다.

#!/bin/sh 

if wget "$1" -O /dev/null --tries 1 --quiet --timeout 5; then echo "Up"; else echo "Down"; fi 

check-site.sh "http://10.1.1.1:8080/test" 
+0

당신이 (무상 호환성을 추가하지만 다른 효과가 없습니다)은'function' 키워드를 꺼내서 경우, 스크립트는 모든 POSIX 쉬 통역과 함께 일하는 것이, 따라서'수 '#!/bin/bash'보다는 #!/bin/sh'을 사용하십시오. 만약 당신이 bashisms를 사용하기를 원한다면 수학을 할 때'if (($? == 0))'를 사용할 것을 권합니다. 수학 컨텍스트의 C 스타일 구문은 더 깨끗하고 읽기 쉽습니다. 덧글 다시 : 수학을 완전히 피하는 방법]. –

+0

... 또한 더 간단히 다음과 같이 작성할 수 있습니다 :'if wget ...; 그런 다음 "위로"에코; else echo "Down"; ''$ '를 테스트 할 필요가 없습니다. –

+0

'=='은 POSIX에 의해'[]'(문자열 비교 연산자로 하나의'= '만 사용함) 안에서 작동한다는 보장이 없으므로 -'(())'에서 제안한 이유입니다. –

관련 문제