用Python的psutil库实现系统进程的终止和杀死
psutil 是一个跨平台的过程和系统监视库,它可以使用 Python 进行进程管理。通过使用这个库,我们可以获取系统中所有运行中的进程的详细信息,包括 CPU 使用率、内存使用率等,并可以对这些进程进行操作,比如终止进程、杀死进程等。
首先,我们需要安装 psutil 库,可以使用以下命令来安装:
pip install psutil
下面是使用 psutil 库实现系统进程的终止和杀死的几个例子:
### 1. 获取系统中所有进程的信息
要获取系统中所有进程的详细信息,我们可以使用 psutil.process_iter() 方法,它返回一个生成器,可以用来迭代系统中所有的进程。每个进程对象都有一些常用的属性,如进程 ID、进程名、创建时间等,可以使用这些属性来获取有关进程的信息。
import psutil
for proc in psutil.process_iter(['pid', 'name', 'create_time']):
print(f"Process ID: {proc.pid}")
print(f"Process Name: {proc.name()}")
print(f"Process Create Time: {proc.create_time()}
")
### 2. 根据进程名终止进程
可以根据进程名来终止一个进程。使用 psutil.process_iter() 方法,我们可以遍历所有进程,然后判断进程的名称是否匹配,如果匹配就终止该进程。
import psutil
def terminate_process_by_name(process_name):
for proc in psutil.process_iter():
try:
if proc.name() == process_name:
proc.terminate()
print(f"Terminated process with name: {process_name}")
except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess):
pass
terminate_process_by_name("chrome.exe")
### 3. 根据进程 ID 终止进程
另一种方式是根据进程 ID 来终止进程。psutil 库的 Process 类可以接受一个进程 ID 作为参数,并提供了 terminate() 方法来终止该进程。
import psutil
def terminate_process_by_pid(pid):
try:
process = psutil.Process(pid)
process.terminate()
print(f"Terminated process with ID: {pid}")
except (psutil.NoSuchProcess, psutil.AccessDenied):
pass
terminate_process_by_pid(1234)
### 4. 根据进程名杀死进程
要杀死一个进程,而不是仅仅终止它,我们可以使用 kill() 方法。与终止进程的示例类似,我们可以使用 Process 类来获取进程对象,然后调用 kill() 方法杀死该进程。
import psutil
def kill_process_by_name(process_name):
for proc in psutil.process_iter():
try:
if proc.name() == process_name:
proc.kill()
print(f"Killed process with name: {process_name}")
except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess):
pass
kill_process_by_name("chrome.exe")
### 5. 根据进程 ID 杀死进程
类似于终止进程,根据进程 ID 杀死进程也是使用 kill() 方法。以下示例根据进程 ID 杀死指定的进程。
import psutil
def kill_process_by_pid(pid):
try:
process = psutil.Process(pid)
process.kill()
print(f"Killed process with ID: {pid}")
except (psutil.NoSuchProcess, psutil.AccessDenied):
pass
kill_process_by_pid(1234)
以上是使用 psutil 库实现系统进程的终止和杀死的几个例子。通过使用 psutil 库,我们可以轻松地获取有关系统进程的信息,并对进程进行操作。在实际开发中,我们可以根据需要对进程进行管理,以满足特定的需求。
