python - 我怎样才能杀死后台python进程?

标签 python asynchronous background-process kill psutil

我想要 python 语法,它会为我提供通过 python 本身运行的后台进程列表,并一次杀死所有这些进程。我应该在下面的代码中做哪些修改?

我编写了这段代码来获取所有正在运行的进程并根据其名称终止特定的进程。

import psutil

for proc in psutil.process_iter():
    try:
        # Get process name & pid from process object.
        processName = proc.name()
        processID = proc.pid
        print(processName , ' ::: ', processID)
    except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess):
        pass

for proc in psutil.process_iter():
    if proc.name() == "powershell.exe":
        proc.kill()

最佳答案

您应该能够使用完全相同的方法终止 python 进程。当然:小心!如果我在我的机器上这样做,我会杀死一些为我做重要工作的进程:)

找出你的 python 解释器是如何被调用的。我假设它是“python3.exe”或“python.exe”。在我的机器上它是'python3'。

请注意您的 Python 脚本不会自行终止。为此,您可以检查 killer 脚本的 pid 是什么。以下示例对我有用。出于显而易见的原因,我已将 proc.kill() 语句替换为 print

import psutil
import os

my_pid = os.getpid()

for proc in psutil.process_iter():
    try:
        # Get process name & pid from process object.
        processName = proc.name()
        processID = proc.pid

        if proc.pid == my_pid:
            print("I am not suicidal")
            continue

        if processName.startswith("python3"): # adapt this line to your needs
            print(f"I will kill {processName}[{processID}] : {''.join(proc.cmdline())})")
            # proc.kill()
    except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess) as e:
        print(e)

输出:

I will kill python3[11205] : python3-cimport time; time.sleep(1000))
I am not suicidal
I will kill python3[15745] : <another python job running on my machine>

只是执行time.sleep 的Python 进程是我为了测试目的提前启动的。

关于python - 我怎样才能杀死后台python进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61153717/

相关文章:

python - 通过django模板中的键获取字典值

javascript - 我需要在嵌套的 require 调用中列出多少个依赖项?

java - Java 中的后台进程

ios - 考虑到操作系统会在 30 秒内关闭应用程序,Whatsapp 的网络版本如何在 iOS 设备上运行?

python - 每次运行在变量之间交替

python - 如何让 Python 中的 Selenium WebDriver 休眠几毫秒

python - 如何从 1D 字符串列表创建 2D int 列表

c# - 如何正确地异步编写 Socket/NetworkStream?

ios - 连续调用 UIViewController 的 presentViewController 方法

ios - geofence didEnterRegion/didExitRegion通知后如何进行BG NW下载