您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

跨平台通过python中的进程名称获取PID的方法

跨平台通过python中的进程名称获取PID的方法

您可以使用在Windows和UNIX上均可使用的psutil(https://github.com/giampaolo/psutil):

import psutil

PROCNAME = "python.exe"

for proc in psutil.process_iter():
    if proc.name() == PROCNAME:
        print(proc)

在我的机器上打印:

<psutil.Process(pid=3881, name='python.exe') at 140192133873040>

编辑2017-04-27-这是一个更高级的实用程序功能,可根据进程的name(),cmdline()和exe()检查名称

import os
import psutil

def find_procs_by_name(name):
    "Return a list of processes matching 'name'."
    assert name, name
    ls = []
    for p in psutil.process_iter():
        name_, exe, cmdline = "", "", []
        try:
            name_ = p.name()
            cmdline = p.cmdline()
            exe = p.exe()
        except (psutil.AccessDenied, psutil.ZombieProcess):
            pass
        except psutil.NoSuchProcess:
            continue
        if name == name_ or cmdline[0] == name or os.path.basename(exe) == name:
            ls.append(p)
    return ls
python 2022/1/1 18:39:17 有360人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶