是否有 Ruby 模块或类提供有关当前正在运行但不是当前进程的信息?例如,如果我有 pid 1234,我想获取有关进程用户、时间等的信息。我可以通过 shell 来获取此信息ps
,但我更喜欢从 Ruby 获取信息。例如,类似于以下虚构代码:
require 'process/info'
process = ProcessInfo.new(1234)
puts process.pid
puts process.user
任何帮助都值得感激。
是否有 Ruby 模块或类提供有关当前正在运行但不是当前进程的信息?例如,如果我有 pid 1234,我想获取有关进程用户、时间等的信息。我可以通过 shell 来获取此信息ps
,但我更喜欢从 Ruby 获取信息。例如,类似于以下虚构代码:
require 'process/info'
process = ProcessInfo.new(1234)
puts process.pid
puts process.user
任何帮助都值得感激。
是的,您可以使用纯 Ruby 通过读取 Linux 系统上的 proc 文件系统来实现这一点。以下是如何通过进程的 PID 获取有关进程的信息的示例:
该脚本从 proc 文件系统读取进程信息:
uid
从文件状态获取。cmdline
从文件中读取cmdline
。starttime
从文件中读取stat
。请注意,该
starttime
值以启动时间以来的时钟刻度为单位。如有必要,您可能需要将其转换为更易于阅读的格式。输出:
您可以使用sys-proctable gem(支持多种操作系统):