psutil获取进程的命令行信息时输出psutil.AccessDenied(),这个怎么处理?如何做判断
时间: 2024-05-06 19:19:39 浏览: 134
Python使用psutil获取进程信息的例子
psutil.AccessDenied()表示当前用户没有足够的权限获取进程的命令行信息,可以尝试以下方式处理:
1. 以管理员身份运行程序,获取到足够的权限。
2. 尝试使用其他方式获取进程的命令行信息,例如通过WMI接口获取。
3. 判断是否有足够的权限获取进程的命令行信息,可以使用psutil.Popen()获取进程的PID,然后通过os.geteuid()获取当前用户的UID,再通过psutil.Process(pid).uids()获取进程的UID信息,判断当前用户是否具有读取该进程信息的权限。示例代码如下:
```python
import os
import psutil
pid = psutil.Popen(['python']).pid
uid = os.geteuid()
p_uid = psutil.Process(pid).uids()[0]
if uid == p_uid:
# 当前用户具有足够的权限
cmdline = psutil.Process(pid).cmdline()
else:
# 当前用户无法获取进程的命令行信息
print("Access denied.")
```
阅读全文