Получите процент использования памяти, используя pgrep, а не ps - PullRequest
0 голосов
/ 07 декабря 2018

У меня есть сценарий bash, который получает процент памяти с помощью команды ps следующим образом:

g_var_mem=$(ps -aux | grep myproc | grep -v grep | awk '{print $4}')

Для моего конкретного процесса вывод равен 0,3.

Когда я использую ShellCheck для проверки скрипта, я получаю SC2009 сообщение о том, что "рассмотрите возможность использования pgrep вместо grep ps output.".

Есть ли в любом случаеиспользовать pgrep, чтобы получить этот процент памяти?Или другой способ избавиться от этого предупреждения?

Ответы [ 2 ]

0 голосов
/ 07 декабря 2018

Вы также можете сделать это:

ps -p $(pgrep YOURPROCESSNAME) -o '%mem='

С уважением!

0 голосов
/ 07 декабря 2018

ИМХО, вам не нужно использовать 2 раза grep с awk, вместо этого используйте один awk.

ps -aux | awk '!/awk/ && /your_process_name/{print $4}'

Объяснение вышеприведенного кода:

ps -aux | awk '                      ##Running ps -aux command and passing its output to awk program here.
!/awk/ && /your_process_name/{       ##Checking condition if a line NOT having string awk AND check string(which is your process name) if both conditions are TRUE then do following.
  print $4                           ##Printing 4th field of the current line here.
}'                                   ##Closing condition BLOCK here.
...