- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我遇到了一个主要问题:我无法访问不属于用户的(大多数)进程的信息。例如,以下内容:
for proc in psutil.process_iter():
try:
print proc.pid, proc.username
except psutil.AccessDenied:
print "denied"
打印:
0 NT AUTHORITY\SYSTEM
4 NT AUTHORITY\SYSTEM
428 denied
444 denied
632 my_user
648 denied
676 my_user
704 denied
748 denied
772 denied
804 denied
824 denied
832 denied
880 my_user
920 denied
988 denied
1052 denied
...
对于这些相同的“拒绝”进程,get_cpu_times() 等方法可以正常工作。
UPD:抱歉,我用不同的属性和不同的打印运行了这个东西很多次,以至于我粘贴的输出来自不同的代码段(打印的用户名
,而不是名称
)。但是,我希望这一点仍然很清楚......
最佳答案
看来错误是在底层 C 代码中生成的。我不知道为什么GetProcessImageFileName()优先于 QueryFullProcessImageName() (因为后者返回的路径与我们预期的一样,使用驱动器号/UNC 路径),但调用可能会因其中任何一个而失败。
你可能不得不用 the developers 来解决这个问题.
来自 _psutil_mswindows.c(第 502 行):
if (GetProcessImageFileName(hProcess, &exe, nSize) == 0) {
CloseHandle(hProcess);
if (GetLastError() == ERROR_INVALID_PARAMETER) {
// see https://code.google.com/p/psutil/issues/detail?id=414
AccessDenied();
}
else {
PyErr_SetFromWindowsErr(0);
}
return NULL;
}
编辑:
我试图对症状做更多的调查,并且我有更多的报告。在安装了相对较新的 Python 2 (2.7.6) 的或多或少完全修补的 Win7 SP1 x64 机器上,我无法访问 psutil.Process
类的这些成员:exe
, get_ionice()
, get_memory_maps()
, get_nice()
, get_cwd()
/getcwd()
、get_open_files()
、name
、nice
和 username
。
Windows 机器的任何管理员用户当然都可以获得此信息,所以我不知道为什么 psutil 无法获取它,除非它以 The Wrong Way™(Microsoft 定义的永久移动目标)进行操作。
关于python - Psutil 在获取进程属性时为所有非用户拥有的进程引发 AccessDenied,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21776302/
我试图用 python psutil 做一些事情但是得到了一个奇怪的错误。 procs = psutil.get_process_list() 出现以下错误: AttributeError: 'mod
我正在尝试使用 psutil 终止进程 (zoom.exe)。但是,我收到错误 psutil.AccessDenied。我拥有执行此操作的所有权限,并且已经在另一台电脑上进行了测试。 代码 def k
我正在尝试为我的 Linux 服务器编写一个小的异常警报应用程序,我发现 psutil 是一个非常方便的库。 不过,我不是很清楚psutil.cpu_percent(interval=1)和psuti
我开始使用 pyspark 学习 Spark,想知道以下日志消息的含义是什么? UserWarning: Please install psutil to have better support wi
我在我的 Snakemake 工作流程中包含了一些规则的 benchmark 指令,生成的文件具有以下 header : s h:m:s max_rss max_vms max_uss max
我正在尝试在 centos 中安装 psutil 并且同样因 gcc 错误而失败。我在这个论坛上提到了各种帖子,但没有一个有帮助。许多线程建议使用 pydev 但它已经存在于我的系统中 #sudo /
有人能帮我理解为什么我不能安装 psutil 吗?我在 MacOS 上。我是一个菜鸟,所以请耐心等待,但任何帮助将不胜感激。这可能与我安装的默认 Python 安装 vs v3 有关吗?我是命令行的新
我正在尝试运行这段代码,但我没有按名称获取进程列表: import psutil PROCNAME = "python.exe" for proc in psutil.process_iter():
我正在尝试安装 lib psutil,使用命令 !pip install psutil。当我运行这段代码时,我得到了这个 Requirement already satisfied: psutil i
也许我忽略了一些东西,但我无法弄清楚如何在不遍历所有进程的情况下一次获取所有进程的 current_process.cpu_percent(interval=0.1)。当前迭代需要 process_c
我正在为 Linux 编写一个 Python 脚本,该脚本应该在满足给定条件时暂停进程,然后再恢复它。为此,我使用 psutil (http://code.google.com/p/psutil)。我
我正在尝试查找所有可用的端口来连接计算机。我正在使用下面的代码 import psutil for proc in psutil.process_iter(): print (proc)
我有一个小的 python 脚本,基本上如下所示: import os import psutil def processtree(): pid = os.getpid() # hav
我正在尝试测量进程树的 CPU 使用率。 目前获取一个进程(没有子进程)的 cpu_usage 就可以了,但是我得到了奇怪的结果。 import psutil p = psutil.Process(P
当运行 psutil.virtual_memory() 时,我得到这样的输出: >>psutil.virtual_memory() vmem(total=8374149120L, av
Glances v2.11.1 with psutil v5.4.3 /usr/lib/python3.6/site-packages/psutil/_pslinux.py:1152: Runtime
我正在编写一些代码,根据进程的名称和所有者来终止进程。这在 Windows XP 上运行良好,但当我在 Windows 7 上运行相同的代码时,在尝试获取进程的用户名时出现“访问被拒绝”错误。 是否有
我的目标只是列出占用内存最多的 5 个进程,以及它们“使用”了多少内存。我已通读文档,似乎 process.memory_info().rss 就是我想要的,但是这个数字明显小于 Windows 任务
get_cpu_percent()函数具体如何使用? 我的代码是: SDKTestSuite.DijSDK_CalculateFps(int(timeForFPS),int(index),camera
我在 python 解释器中执行以下两个语句。 >>> psutil.cpu_percent(interval=None, percpu=False) 2.0 >>> psutil.cpu_perce
我是一名优秀的程序员,十分优秀!