在python中停止子进程
我有几个使用子流程库同时运行的python脚本。但是,我希望能够在事件发生时停止所有进程,例如按下按钮。我试过几种方法,但似乎都不管用。 我正在使用Windows和Python 3.8.0 下面是我打开所有进程的代码在python中停止子进程,python,python-3.x,process,subprocess,libraries,Python,Python 3.x,Process,Subprocess,Libraries,我有几个使用子流程库同时运行的python脚本。但是,我希望能够在事件发生时停止所有进程,例如按下按钮。我试过几种方法,但似乎都不管用。 我正在使用Windows和Python 3.8.0 下面是我打开所有进程的代码 import subprocess subprocess.Popen("python Program1.py") subprocess.Popen("python Program2.py") subprocess.Popen("python Program3.py") subpro
import subprocess
subprocess.Popen("python Program1.py")
subprocess.Popen("python Program2.py")
subprocess.Popen("python Program3.py")
subprocess.Popen("python Program4.py")
subprocess.Popen("python Program5.py")
subprocess.Popen("python Program6.py")
subprocess.Popen("python Program7.py")
我不知道如何使用子流程库或任何其他库结束流程。
我还尝试了以下方法
proc1.kill()
p.terminate()
在上面的一个例子中,我尝试了将
放入Exception,e:
和pkill(“PROGRAM.py”)
中,但这似乎也不起作用。您可以跟踪启动的进程ID:
import os
import subprocess
processes = []
for x in range(0,9):
p = subprocess.Popen("python Program.py %s" % x)
processes.append(p.pid) # keep the processIds!
for p in processes:
os.system('taskkill /F /PID ' + p)
您必须将进程保存到一个变量中,以便稍后终止或终止它。对不起,我不太明白,我该怎么做呢?
import os
import subprocess
processes = []
for x in range(0,9):
p = subprocess.Popen("python Program.py %s" % x)
processes.append(p.pid) # keep the processIds!
for p in processes:
os.system('taskkill /F /PID ' + p)