[英]Python Subprocess communicate fails after terminate
我遇到一個問題,即調用proc.communicate()
甚至要求后仍然掛起proc.terminate()
我創建任務以在后台運行
import subprocess as sub
p = sub.Popen(command, stdout=sub.PIPE, stderr=sub.PIPE, shell=False)
在腳本完成時,我調用terminate()
, communicate()
和wait()
來從進程中收集信息。
p.terminate()
errorcode = p.wait()
(pout, perr) = p.communicate()
腳本掛在通話處以進行通信。 我假設在終止呼叫之后進行的任何通信呼叫都會立即返回。 有什么原因會失敗嗎?
編輯:我正在使用此方法,因為該命令實際上是一個緊密的循環,不會自行終止。 我想使用p.terminate()來執行此操作,然后查看stdout和stderr必須提供什么。
您不需要前兩個語句。 只需調用communicate()
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.