won*_*ng2 2 python linux process
我想从Linux上的python中获取进程ID的用户名,所以我可以这样显示:
name user name pid
Chrome wong2 123
Run Code Online (Sandbox Code Playgroud)
Fre*_*Foo 10
你可以从/proc/pid中读取uid /status.他们在一条线上开始Uid:.从uid,您可以导出用户名pwd.getpwuid(pid).pw_name.
UID = 1
EUID = 2
def owner(pid):
'''Return username of UID of process pid'''
for ln in open('/proc/%d/status' % pid):
if ln.startswith('Uid:'):
uid = int(ln.split()[UID])
return pwd.getpwuid(uid).pw_name
Run Code Online (Sandbox Code Playgroud)
(常量来自fs/proc/array.cLinux内核.)
小智 6
如果您不想解析/ proc / PID / status文件,并且该进程没有更改UID,并且如果派生一个进程看起来很昂贵,则查找用户名,请尝试:
import os
import pwd
# the /proc/PID is owned by process creator
proc_stat_file = os.stat("/proc/%d" % pid)
# get UID via stat call
uid = proc_stat_file.st_uid
# look up the username from uid
username = pwd.getpwuid(uid)[0]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5410 次 |
| 最近记录: |