필자는 Python에 처음 소개되었으며 localhost
(Apache Tomcat에서 호스팅)에서 실행중인 Java 웹 앱 (WAR 파일)이 실행 중인지 여부를 확인하기 위해 모니터를 작성하려고합니다.파이썬에서 wget/urllib2의 결과를 확인하는 방법은 무엇입니까?
ps -aef | grep myWebApp
을 그리고 어떤 프로세스 ID가 다시 그 결과에 온 있는지 확인하기 위해 grep
의 결과를 검사 : 나는 이전에 실행 스크립트를 고안했다.
그러나 호스트 OS는 Tomcat 프로세스 만 볼 수 있으며 Tomcat이 호스팅하는 웹 응용 프로그램은 볼 수 없습니다. 다음으로 Tomcat에 터미널에서 충돌 할 수있는 CLI가 있는지 알아 보았습니다. 대답은 '아니오'인 것처럼 보입니다.
지금, 나는 그들을 http://localhost:8080/myWebApp
충돌 필요하고 그 결과를 확인하여 내 웹 응용 프로그램이 실행되고 있는지 확인도 urllib2
어쩌면 wget
를 사용하거나 생각 해요. 여기 wget
내 가장 좋은 시도입니다 : 여기에 내 생각은 웹 응용 프로그램이 실행되고 있지 않은 경우, wget
의 출력이 항상 단어를 포함해야한다는 것입니다
은 (적어도에서 그 안에 "실패"
wgetCmd = "wget http://localhost:8080/myWebApp"
wgetResults = subprocess.check_output([wgetCmd], shell=True, stderr=subprocess.STDOUT)
for line in wgetResults.strip().split('\n'):
if 'failed' in line:
print "\nError: myWebApp is not running."
sys.exit()
내 경험). (오류가 무엇인지) 여기에 무슨 일이 일어나고 있는지에 관해서는
Traceback (most recent call last):
File "/home/myUser/mywebapp-mon.py", line 52, in <module>
main()
File "/home/myUser/mywebapp-mon.py", line 21, in main
wgetResults = subprocess.check_output([wgetCmd], shell=True, stderr=subprocess.STDOUT)
File "/usr/lib/python2.7/subprocess.py", line 544, in check_output
raise CalledProcessError(retcode, cmd, output=output)
subprocess.CalledProcessError: Command '['wget http://localhost:8080/myWebApp']' returned non-zero exit status 4
어떤 생각 :이 프로그램을 실행할 때 불행하게도, 나는 다음과 같은 오류가 발생합니다? 또한 더 중요한 것은 잘못된 방향으로가는 것입니까? 미리 감사드립니다!
감사합니다. @ J.F. Sebastian - 궁극적으로, 귀하의 방법은 더 빠르고 간단 해졌으며 '상자에서 바로'작동하므로 말할 수 있습니다. 감사합니다. – IAmYourFaja