Групповые процессы с пс - PullRequest
4 голосов
/ 14 июня 2011

Я хочу использовать ps на своем рабочем столе через geektools, чтобы увидеть, какие процессы используют и что.В настоящее время моя команда:

ps -amcwwwxo "command %mem %cpu" | grep -v grep | head -13

Проблема заключается в том, что, поскольку я использую Chrome, процесс "Google Chrome He" занимает большую часть из 13 строк дисплея.

Есть ли способ объединить использование mem и cpu всех процессов с одинаковыми именами?Либо с помощью ps, либо с помощью другой команды.

Ответы [ 4 ]

3 голосов
/ 15 июня 2011

Вы можете использовать комбинацию awk и sort:

(
printf "%-20s %-8s %-8s\n" "COMMAND" "%MEM" "%CPU"
/bin/ps -amcwwwxo "command %mem %cpu" | 
/usr/bin/awk -F" " '
BEGIN { 
  idx=0 
  format="%-20s /%-8s/ %-8s\n"
}
{
  idx = idx + 1
  col1=$0
  col2=$(NF-1)
  col3=$NF
  sub(/[[:space:]]+[^ ]+[[:space:]]+[^ ]+[[:space:]]*$/,"", col1)
  a[idx]=col1
  b[col1]+=col2
  c[col1]+=col3
}
END {
  for(i=2; i<=idx; i++) 
  {
    if (a[i] in b)
    {
      printf format, a[i], b[a[i]], c[a[i]]
      delete b[a[i]]
    }
  }
}
' | 
/usr/bin/sort -rn -t '/' -k 2,2 | /usr/bin/tr -d '/' | /usr/bin/head -n 15
)
1 голос
/ 25 января 2016

верхняя группа процессоров по командной строке:

sudo ps aux | awk '{arr[$11]+=$3}; END {for (i in arr) {print arr[i],i}}' | sort -k1nr | head -n 10
1 голос
/ 04 июня 2012

Глядя на то же самое, я разобрался в этом

ps aux | awk '{arr[$1]+=$4}; END {for (i in arr) {print i,arr[i]}}' | sort -k2

для печати процессов, упорядоченных по mem, сгруппированных по пользователю (столбец 1, $ 1), вы можете группировать по другим вещам и суммировать другие, изменяя $ 1 и $ 4

  • $ 1 - первый столбец: имя пользователя (по группам)
  • $ 4 - четвертый столбец:% mem (суммирует)

Я был рад найти решение, просто хотел поделиться.

0 голосов
/ 14 июня 2011

Он не существует, вы должны написать свой собственный код / ​​команду / скрипт для этого. Поскольку все процессы Google Chrome Helper являются отдельными процессами, возможно, вы можете написать скрипт, который вычисляет все процессы Chrome (помощник, подключаемые хосты и т. Д.), Используя идентификатор родительского процесса.

...