创建按状态排序的流程列表

时间:2013-04-01 15:34:29

标签: linux bash ps

我需要创建一个shell脚本,按状态类型列出进程。 输出必须是:

流程运行:

[过程]

处理睡眠:

[过程]

ETC

我这样做了,但是 ps aux |没有用awk'$ 8~ PROCESS'

for PROCESS in `ps -v | awk 'NR!=1 {print $2}' | sort -u`; do
   echo "Procesos como $PROCESS:"
   ps aux | awk '$8 ~ PROCESS'
done

导致脚本输出所有进程,而不是按进程筛选。

任何帮助?

2 个答案:

答案 0 :(得分:1)

一个简单的解决方案是使用pssort

ps u | sort -rk 8

-r撤消排序(以便列表标题保持在上方),-k 8选择第8个字段(STAT)。

然后,您可以使用headawk之类的任何内容选择特定状态的流程,并打印出您喜欢的任何内容。

答案 1 :(得分:0)

您还可以在非交互模式下使用top(-S选项以按状态显示和排序):

top -b -n 1 -S