当popen对不存在的服务执行状态检查时,错误没有返回结果

时间:2014-07-09 15:44:48

标签: subprocess popen communicate

我正在尝试使用subprocess.Popen()来阅读服务状态。

如果我在屏幕上显示unrecognized service error值,则不会保存到outerr以供日后查看。

如果服务确实存在,"正在运行"保存到out值。当遇到无法识别的错误时,我想完成相同的结果。

我尝试使用subprocess.check_output,但无法识别。

如果我使用现有服务,它可以根据需要运行。

我的代码:

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

out,err = p.communicate()

1 个答案:

答案 0 :(得分:0)

您需要管道stderr以及stdout

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