为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕田峪4524236 2022-10-06 16:04:36
我想要 python 语法,它会给我通过 python 本身运行的后台进程列表,并一次杀死所有这些进程。我应该在以下代码中进行哪些修改?我编写了这段代码来获取所有正在运行的进程并按其名称杀死特定的进程。import psutilfor 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):        passfor proc in psutil.process_iter():    if proc.name() == "powershell.exe":        proc.kill()
查看完整描述

1 回答

?
慕容708150

TA贡献1831条经验 获得超4个赞

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


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


请注意,您的 python 脚本不会杀死自己。为此,您可以检查杀手脚本的 pid 是什么。以下示例适用于我。出于显而易见的原因,我已将proc.kill()声明替换为 a 。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>

刚刚做的 Python 进程是time.sleep我为了测试目的而提前启动的。


查看完整回答
反对 回复 2022-10-06
  • 1 回答
  • 0 关注
  • 196 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号