我有下面的python 3.6代码,可以成功打开ping命令并执行而不会出现问题。我注意到任务管理器中似乎有一个“ ping”过程持续存在。
代码:
ping = subprocess.Popen("ping -n {} -w {} {}".format(5, 3, ip), stdout=subprocess.PIPE, stderr=subprocess.STDOUT, stdin=subprocess.PIPE).communicate()[0]
问题:
我是否必须显式“关闭”该子流程?如果是这样,是否可以通过“ with”块来执行此操作,以使其在退回/完成后自动关闭? ...或者,Popen是否不需要显式关闭子进程?
谢谢。
答案 0 :(得分:0)
Popen.terminte()是您要寻找的。来自文档:
停止孩子。在Posix OS上,该方法将SIGTERM发送给子级。在Windows上,调用Win32 API函数TerminateProcess()来停止子级。