在python中停止一个子进程

问题描述 投票:0回答:1

我有几个python脚本,使用子进程库同时运行。然而,我希望能够在事件发生时停止所有进程,比如按下按钮。我尝试了好几种方法,但似乎都不奏效.我使用的是Windows和Python 3.8.0。

下面是我打开所有进程的代码。

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()

def pkill (process_name):
    try:
        killed = os.system('tskill ' + process_name)
    except Exception as e:
        killed = 0
    return killed
pkill("PROGRAM")

而对于上面的那个,我已经尝试过将 except Exception, e: 还把 pkill("PROGRAM.py") 但这似乎也不行。

python python-3.x process subprocess libraries
1个回答
0
投票

你可以跟踪已启动的进程Ids。

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)
© www.soinside.com 2019 - 2024. All rights reserved.