gpt4 book ai didi

ruby - 从 linux 中的 top 命令获取实时值到我的程序中

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:02:15 24 4
gpt4 key购买 nike

我有一个 ruby​​ 守护进程,我正在尝试执行 bash 命令并将其输出输入到程序中。我能够使用 ruby​​ 中的反引号功能来执行像 ls -a 这样的 bash 命令。但是由于 top 命令是实时的,我无法将命令的输出输入到我的程序中。帮助我。

为什么我需要实时数据是因为我试图监视所有进程并在达到内存限制或其他情况时将其终止。我不想做 top -bn 1

 require 'rubygems'
require 'daemons'

options = {
:backtrace => true,
:app_name => 'limits_logger',
:log_dir => '/home/charizard/',
:log_output => true
}

Daemons.daemonize(options)

puts "#{Time.now} - started #{self}."

puts %x{ top -b }

最佳答案

不清楚您要对数据做什么,但解析 top 可能不是一个好的解决方案。它并不意味着机器可读。 top 提供的所有数据都可以通过对程序员更友好的机制获得:

  • 您可以通过 /proc 获取有关所有进程的信息文件系统。

  • 您可以使用 ps命令查询单个进程,或获取有关所有进程的各种数据。

  • 有各种 Ruby 进程列表查询库,例如 SysUtils ,它为 Linux 进程列表查询提供了一个 Ruby API。

一切都可以通过 /proc 获得,大多数其他工具/API 都位于其之上。

无论如何,我不会尝试解析 top 的输出。

关于ruby - 从 linux 中的 top 命令获取实时值到我的程序中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18834328/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com