我一直在寻找通过Linux中的命令行查找具有相同名称的正在运行的进程数的最佳方法。例如,如果我想查找正在运行的bash进程数并获得“ 5”。目前,我有一个脚本执行’pidof’,然后对标记化字符串进行计数。这工作正常,但我想知道是否有更好的方法可以完全通过命令行来完成。在此先感谢您的帮助。
在pgrep可用的系统上,该-c选项返回与给定名称匹配的进程数的计数
pgrep
-c
pgrep -c command_name
请注意,这是grep-style匹配,而不是完全匹配,因此例如pgrep sh也将匹配bash进程。如果您想要完全匹配,请使用该-x选项。
grep
pgrep sh
bash
-x
如果pgrep不可用,可以使用ps和wc。
ps
wc
ps -C command_name --no-headers | wc -l
该-C选项ps需要command_name作为参数,该程序将打印信息表,谁的可执行文件名给定的命令名称相匹配的过程。这是完全匹配,不是grep-style。该--no- headers选项禁止显示表头,通常将其打印为第一行。使用--no-headers,每个匹配的进程将获得一行。然后wc -l计算并打印其输入中的行数。
-C
command_name
--no- headers
--no-headers
wc -l