如何列出所有启动的屏幕及其screen
CPU 利用率? (screen -ls
给出屏幕列表,但不给出 CPU 利用率)
屏幕的 CPU 利用率是指屏幕中启动的进程的 CPU 利用率的总和。
答案1
这不是完整的答案,但我稍后可能会更新。
下面的单行代码如果放入名为 的文件中cpu_usage_for_pid.sh
,将接受 PID 作为参数,并打印该 PID 及其所有子 PID 的 CPU 使用率百分比之和。
#!/bin/bash
awk '{sum += $2} END{print sum}' <(ps -o pid,pcpu p "$(pstree -p "$1" | awk -F '[^0-9][^0-9]*' -v thepid="$1" 'NR = 1 {printf "%d", thepid} { for (i=1; i<=NF; i++) { if ($i != "") { printf ",%d", $i }}}')")
目前我的虚拟机所有进程的使用率仅为 0%,因此很难测试。但您可以像这样运行它./cpu_usage_for_pid.sh 1241
。
这是原型,不用于生产用途。
从Unix 编程的艺术,这又引用了 Mike Lesk:
...他将 shell 脚本和 awk 代码的一些组合结合在一起,大致完成所需的工作,告诉客户给他派一些职员几天,然后让客户进来并使用原型并告诉他他们是否喜欢它。如果他们这样做了,他会说“从现在起几个月后,你就可以以这样那样的成本拥有它的工业实力”
:)