使用 top 显示 PPID 并输出到文件

使用 top 显示 PPID 并输出到文件

我试图使用 Linux top 命令监视进程的 CPU、RAM 和计算时间,以及它生成的所有子进程。

我发现我可以使用以下语法存储 top 命令的输出:

$ top -b > top.txt

然后我用 python 脚本解析结果。但我无法确定我正在监视的特定进程及其子进程。

我发现我可以通过在 top 运行时键入来在 top 中添加 PPID 字段f,但这在使用该选项的批处理模式下不起作用-b

有没有办法显示 PPID 并存储 top 命令的输出,以便我在解析结果时可以找到我感兴趣的进程?

我的具体问题是在批处理模式下使用 top 时在输出文件中包含 PPID。如果您有更好的建议来监控进程的 CPU、RAM 和计算时间,也将受到欢迎。

答案1

在交互式顶部显示中添加 PPID(或任何其他字段)后,您只需使用W(大写w)。然后退出 ( q) 并使用top -b,它将包含并显示您以交互方式对顶部所做的更改中的字段。

答案2

topps被创建为显示流程的交互式和更新变体。在这里使用命令会更容易、更自然ps。例如,对于父进程信息:

ps -ejf > top.txt

或者,对于您的用户,

ps -ejf | awk '{if ($1=="'${USER}'" || NR==1) {print $0}}' > top.txt

或者,以树的格式,可视化进程树的父级/子级:

ps auxfww > top.txt

PPID和简单树格式的组合:

ps -ejfH | awk '{if ($1=="'${USER}'" || NR==1) {print $0}}' > top.txt

相关内容