2014-07-09 5 views
0

subprocess.Popen()을 사용하여 서비스 상태를 읽으려고합니다.popen이 존재하지 않는 서비스에 대한 상태 검사를 수행 할 때 아무런 결과도 반환되지 않습니다.

unrecognized service error이 표시되면 값을 out 또는 err으로 저장하지 않고 나중에 볼 수 있습니다.

서비스가 존재하면 "실행 중"은 out 값으로 저장됩니다. 인식 할 수없는 오류가 발생하면 동일한 결과를 얻고 싶습니다.

나는 subprocess.check_output을 사용해 보았지만 인식 할 수 없습니다.

기존 서비스를 사용하는 경우 원하는대로 작동합니다.

내 코드 : 당신은 파이프 stderr뿐만 아니라 stdout 필요

p = subprocess.Popen(['service','PretendService','status'], stdout=subprocess.PIPE) 

out,err = p.communicate() 

답변

0

:

p = subprocess.Popen(['service','PretendService','status'], 
        stdout=subprocess.PIPE, stderr=subprocess.PIPE) 
out,err = p.communicate() 
# Now err will have your error message 
+0

은 ... 그 고통 간단했다 – John87