Tra*_*ker 25 linux command-line process count
我一直在寻找通过Linux命令行查找具有相同名称的正在运行的进程数的最佳方法.例如,如果我想找到运行的bash进程数并获得"5".目前我有一个脚本执行'pidof',然后计算标记化的字符串.这工作正常但我想知道是否有更好的方法可以完全通过命令行完成.在此先感谢您的帮助.
Dav*_*d Z 55
在具有pgrep可用的系统上,该-c选项返回与给定名称匹配的进程数的计数
pgrep -c command_name
Run Code Online (Sandbox Code Playgroud)
请注意,这是一种grep匹配,而不是完全匹配,因此例如pgrep sh也会匹配bash进程.如果您想要完全匹配,也可以使用该-x选项.
如果pgrep没有,您可以使用ps和wc.
ps -C command_name --no-headers | wc -l
Run Code Online (Sandbox Code Playgroud)
该-C给的选项ps需要command_name作为参数,该程序将打印信息表,谁的可执行文件名给定的命令名称相匹配的过程.这是完全匹配,而非grep风格.该--no-headers选项禁止表格的标题,通常作为第一行打印.有了--no-headers,每个进程匹配一行.然后wc -l计算并打印输入中的行数.
Ama*_*9MF 11
result=`ps -Al | grep command-name | wc -l`
echo $result
Run Code Online (Sandbox Code Playgroud)
小智 5
你可以试试 :
ps -ef | grep -cw [p] rocess_name
要么
ps aux | grep -cw [p] rocess_name
例如:
ps -ef | grep -cw [i] nit