Windows 8 x64 システムで作業しています
サブプロセスを使用して1つの長いプログラムを実行し、実行中にプログラムの出力をフェッチして、特定の基準で実行時に分析するコードを書いています
条件を満たせばすぐにプロセスを終了させたい、プログラムではできないのでpythonからサブプロセスを終了させたい
私のコードは次のようになります
class myThread (threading.Thread):
def __init__(self, threadI....
........
.......
def run(self):
self.process= subprocess.Popen(cmd,stdout=subprocess.PIPE,stderr=subprocess.STDOUT)
for line in iter(p.stdout.readline, b''):
.........................
......Run-time Analysis........
.........................
if (criteria_met):
self.stop()
.........................
........................
def stop(self):
if self.process is not None:
self.process.terminate()
self.process = None
しかし、私はこのようなエラーが発生します
Exception in thread Thread-1:
Traceback (most recent call last):
File "C:\Python27\lib\threading.py", line 551, in __bootstrap_inner
self.run()
File "VB_Extraction.py", line 57, in run
self.process.kill()
File "C:\Python27\lib\subprocess.py", line 1019, in terminate
_subprocess.TerminateProcess(self._handle, 1)
WindowsError: [Error 5] Access is denied
この問題の原因は何ですか? 完了する前にプロセスを終了するにはどうすればよいですか?