我需要一个脚本来检查一个特定的进程是否正在运行,如果找不到,就返回一些东西。 我知道这可以使用subprocess完成,但有一个更简单的方法来做到这一点?
在Windows上,您可以使用WMI:
import win32com.client def find_process(name): objWMIService = win32com.client.Dispatch("WbemScripting.SWbemLocator") objSWbemServices = objWMIService.Connectserver(".", "root\cimv2") colItems = objSWbemServices.ExecQuery( "Select * from Win32_Process where Caption = '{0}'".format(name)) return len(colItems) print find_process("SciTE.exe")
看看: 获取Windows上的进程信息
为了类似的目的,我使用了psutil库。 一些提示:
psutil.pids()
列出进程psutil.pids()
( 参考 ) process = psutil.Process(pid)
( 引用 )检查进程信息 process.kill
或process.terminate()
在windows上安装 pip
将从源代码(这意味着编译)进行安装,所以你可能想从https://pypi.python.org/pypi/psutil/#downloads下载二进制安装。