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

我想要 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()


慕田峪4524236
浏览 198回答 1
1回答

慕容708150

您应该能够使用完全相同的方法杀死 python 进程。当然:小心!如果我要在我的机器上执行此操作,我会杀死一些正在为我做重要工作的进程:)找出你的 python 解释器是如何被调用的。我假设它是“python3.exe”或“python.exe”。在我的机器上它是'python3'。请注意,您的 python 脚本不会杀死自己。为此,您可以检查杀手脚本的 pid 是什么。以下示例适用于我。出于显而易见的原因,我已将proc.kill()声明替换为 a 。printimport psutilimport osmy_pid = os.getpid()for proc in psutil.process_iter():&nbsp; &nbsp; try:&nbsp; &nbsp; &nbsp; &nbsp; # Get process name & pid from process object.&nbsp; &nbsp; &nbsp; &nbsp; processName = proc.name()&nbsp; &nbsp; &nbsp; &nbsp; processID = proc.pid&nbsp; &nbsp; &nbsp; &nbsp; if proc.pid == my_pid:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; print("I am not suicidal")&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; continue&nbsp; &nbsp; &nbsp; &nbsp; if processName.startswith("python3"): # adapt this line to your needs&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; print(f"I will kill {processName}[{processID}] : {''.join(proc.cmdline())})")&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; # proc.kill()&nbsp; &nbsp; except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess) as e:&nbsp; &nbsp; &nbsp; &nbsp; print(e)输出:I will kill python3[11205] : python3-cimport time; time.sleep(1000))I am not suicidalI will kill python3[15745] : <another python job running on my machine>刚刚做的 Python 进程是time.sleep我为了测试目的而提前启动的。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python