簡體   English   中英

停止 python 中的子進程

[英]Stopping a subprocess in python

我有幾個使用子進程庫同時運行的 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")放在一起,但這似乎也不起作用。

您可以跟蹤啟動的進程 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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM