python - 有没有办法以编程方式获取 ps 输出?

标签 python linux macos unix ps

我有一个网络服务器,目前正在对它进行 CPU 使用率基准测试。我所做的实际上是运行一个进程来向服务器发送请求,然后运行以下 bash 脚本来确定 CPU 使用率:

#! /bin/bash

for (( ;; ))
do

    echo "`python -c 'import time; print time.time()'`, `ps -p $1 -o '%cpu' | grep -vi '%CPU'`"
    sleep 5
done

如果能够在 Python 中执行此操作,那就太好了,这样我就可以在一个脚本中运行它,而不必运行两个。我似乎无法找到任何独立于平台(或至少独立于 linux 和 OS X 的平台)的方法来在 Python 中获取 ps 输出,而无需实际启动另一个进程来运行命令。我可以做到这一点,但如果有一个 API 可以做到这一点,那将是真的很好。

有没有办法做到这一点,还是我必须启动外部脚本?

最佳答案

您可以查看 this关于使用 Python 解析 ps 输出的问题。

其中一个答案建议使用 PSI python 模块。不过这是一个扩展,所以我真的不知道它是否适合你。

它还在问题中显示了如何使用 python 调用 ps 子进程:)

关于python - 有没有办法以编程方式获取 ps 输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3559157/

相关文章:

python - 使用列表读取 Pandas 中的列以创建新的分类列

python - 在 sleep 时杀死 python 进程

linux - 关于bash命令/Linux的两个问题

Linux 将字符串的空格替换为换行符

javascript - Mac OSX 上的 Firefox 中的 javascript 未检测到 Shift +/组合键

具有 CAS 的多部分表单的 Python 客户端

python - 键如何在最小值和最大值中工作?

python - While 循环范围(0,5)与 ran = ran[ :-1]; ran ! = [] 始终为真

macos - 从 OS X 文件引用 URL 别名获取路径(文件 :///. file/id=...)

objective-c - 以编程方式创建的 NSToolbar 开始为空并且不会保存