📜  python 获取 pid 的用户 - Python (1)

📅  最后修改于: 2023-12-03 15:19:11.440000             🧑  作者: Mango

Python获取pid的用户

在Python中,可以使用os模块中的getpgid()函数来获取一个进程的pid,然后使用psutil模块中的Process类来获取该pid所对应的进程信息。其中,可以使用uid()方法获取该进程的用户ID(uid),然后使用pwd.getpwuid()函数来获取该用户的用户名。具体的代码如下所示:

import os
import pwd
import psutil

def get_process_user(pid):
    try:
        pgid = os.getpgid(pid)
        process = psutil.Process(pgid)
        uid = process.uids().real
        username = pwd.getpwuid(uid)[0]
        return username
    except:
        return None

# 测试
pid = 12345
username = get_process_user(pid)
if username:
    print('进程%d的用户为%s' % (pid, username))
else:
    print('未能找到进程%d的用户' % pid)

以上代码会打印出该进程的用户信息,如果找不到该进程,则会返回None。代码中使用了try...except语句来捕获可能的错误,使得程序能够在出错时继续执行。

参考资料
  • 官方文档:https://docs.python.org/3/library/os.html#os.getpgid
  • 官方文档:https://psutil.readthedocs.io/en/latest/#psutil.Process.uids
  • 官方文档:https://docs.python.org/3/library/pwd.html#pwd.getpwuid