2017-05-08 9 views
2

私は、モバイルデバイスからログを読むためにこのコードを使用しています:無限のサブプロセスを正しく終了するにはどうすればいいですか?

with subprocess.Popen(read_device_logs_cmd, shell=True, stdout=subprocess.PIPE, bufsize=1, 
           universal_newlines=True, errors="replace") as p: 

    for line in p.stdout: 
     save(line) 

のでpが際限なく実行されます。 編集:重要な情報、このサブプロセスはスレッド内で実行されているので、他の部分のコードからサブプロセス内のループを操作できます。

pをプログラムで正しく停止するにはどうすればよいですか?

端末では、私はちょうどCTRL + Cをしなければならないでしょう。

p.kill()またはp.terminate()は仕事をしますか?

答えて

2

p.kill()を使用すると、サブプロセスを強制終了できます。

関連する問題