使用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 浏览器是否已完全关闭。