📜  使用Python按名称杀死进程

📅  最后修改于: 2022-05-13 01:54:56.507000             🧑  作者: Mango

使用Python按名称杀死进程

一个进程在系统上由所谓的进程 ID 标识,当第一个进程仍在运行时,没有其他进程可以使用该编号作为其进程 ID。想象一下,您是一家公司的系统管理员,您从菜单启动一个应用程序,然后突然开始使用该应用程序,您注意到该应用程序停止工作或意外死亡。您再次尝试启动该应用程序,但事实证明该应用程序从未完全关闭。由于您是管理员,因此您可以向 Process ID 键入命令并立即终止该进程。想象一下这种情况,您公司的员工每天都来找您抱怨同样的情况,因为他们不知道什么是 PID 以及如何杀死进程。因此,您想出了用Python编写脚本的想法,该脚本仅输入应用程序或进程的名称并完全关闭它。您将此脚本提供给您的员工,因此每次发生这种情况时,他们无需向您抱怨或知道什么是进程 ID 或如何终止进程,只需输入名称,一切都会得到处理。

使用的功能:

  • os.popen():此方法用于打开一个 pip 到和从命令。
    在下图中,您可以看到进程 firefox 正在运行
  • os.kill(): Python中的该方法用于向具有指定进程id的进程发送指定信号。

下面是实现。

在下图中,您可以看到进程 firefox 正在运行。

过程

Python3
import os, signal
  
def process():
     
    # Ask user for the name of process
    name = input("Enter process Name: ")
    try:
         
        # iterating through each instance of the process
        for line in os.popen("ps ax | grep " + name + " | grep -v grep"):
            fields = line.split()
             
            # extracting Process ID from the output
            pid = fields[0]
             
            # terminating process
            os.kill(int(pid), signal.SIGKILL)
        print("Process Successfully terminated")
         
    except:
        print("Error Encountered while running script")
  
process()


输出:

蟒蛇杀死进程

在上图中,您可以看到所有 firefox 实例都已终止。您在图像中看到的是 grep 命令正在调用的实例。您现在可以检查您的 Firefox 浏览器是否已完全关闭。