如何获取系统上正在运行的进程列表并按各种参数对其进行排序

Posted

技术标签:

【中文标题】如何获取系统上正在运行的进程列表并按各种参数对其进行排序【英文标题】:How to fetch list of running processes on a system and sort them by various parameters 【发布时间】:2014-05-09 01:01:52 【问题描述】:

我使用 htop 查看有关我的 osx 机器中当前运行的进程的信息,还可以按 CPU、内存使用情况等对它们进行排序。

有没有办法在 Ruby 中以编程方式获取 htop 的输出?此外,我希望能够使用 API 使用各种参数(如 CPU、内存使用率等)对进程进行排序。

我可以做IO.popen('ps -a') 并解析输出,但想知道是否有比直接解析以编程方式运行的系统命令的输出更好的方法。

【问题讨论】:

【参考方案1】:

查看sys-proctable:

require 'sys/proctable'

Sys::ProcTable.ps

starttime排序:

Sys::ProcTable.ps.sort_by(&:starttime)

【讨论】:

有其他选择吗?目前,这个 gem 没有兼容的 JRuby 版本。

以上是关于如何获取系统上正在运行的进程列表并按各种参数对其进行排序的主要内容,如果未能解决你的问题,请参考以下文章

如何将命令行参数传递给 unix/linux 系统上正在运行的进程?

在 Filenet 中获取和更新工作流数据

获取正在运行的进程列表

如何获取绑定到我正在运行的控制台窗口的进程列表,该列表也适用于 Windows 2000?

标准用户(XP/Server 2003及以下)如何获取所有运行进程的镜像路径?

如何在Linux中查看所有正在运行的进程