Я искал лучший способ найти количество выполнения процессов с тем же именем через командную строку в Linux. Например, если я хотел найти количество выполнения процессов удара и добраться "5". В настоящее время у меня есть сценарий, который делает 'pidof' и затем проводит подсчет на маркируемой строке. Это хорошо работает, но я задавался вопросом, был ли лучший путь, который может быть сделан полностью через командную строку. Заранее спасибо за Вашу справку.
В системах, в которых доступен pgrep
, параметр -c
возвращает количество процессов, соответствующих данному имени
pgrep -c command_name
Примечание. что это совпадение в стиле grep
, а не точное совпадение, поэтому, например, pgrep sh
также будет соответствовать процессам bash
. Если вам нужно точное совпадение, также используйте параметр -x
.
Если pgrep
недоступен, вы можете использовать ps
и wc
.
ps -C command_name --no-headers | wc -l
Параметр -C
для ps
принимает имя_команды
в качестве аргумента, и программа печатает таблицу с информацией о процессах, имя исполняемого файла которых совпадает с заданной командой. имя. Это точное совпадение, а не стиль grep
. Параметр - no-headers
подавляет заголовки таблицы, которые обычно печатаются как первая строка. С - без заголовков
вы получаете одну строку на каждый сопоставленный процесс. Затем wc -l
подсчитывает и печатает количество строк во входных данных.
result=`ps -Al | grep command-name | wc -l`
echo $result