【问题标题】:Stopping a subprocess in python在python中停止子进程
【发布时间】:2020-09-19 09:26:50
【问题描述】:

我有几个使用子进程库同时运行的 python 脚本。但是,我希望能够在事件发生时停止所有进程,例如按下按钮。我已经尝试了几件事,但它们似乎都不起作用。 我正在使用带有 Python 3.8.0 的 Windows

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

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"),但这似乎也不起作用。

【问题讨论】:

  • 您必须将进程保存到一个变量中才能在以后杀死或终止它。
  • @KlausD。对不起,我不太明白,我该怎么做?

标签: python python-3.x process subprocess libraries


【解决方案1】:

您可以跟踪启动的进程 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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-02
    • 2012-02-23
    • 2016-12-15
    • 1970-01-01
    相关资源
    最近更新 更多