📅  最后修改于: 2023-12-03 15:19:11.440000             🧑  作者: Mango
在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
语句来捕获可能的错误,使得程序能够在出错时继续执行。