pgrep -x $proc :完全匹配进程名
ps -o cmd -p: 根据pid, 列出command列
grep -v ^CMD$;排除 CMD开头和结尾的行
cut -d ' ' -f2-: 裁剪出以空格未分割符的第二列开始到最后的内容
grep -c $proc: 统计进程名数量
统计命令:
pgrep -x $proc|xargs ps -o cmd -p|grep -v ^CMD$| cut -d ' ' -f2-|grep -c $proc
例子:
[root@wangzi ~]# pgrep -x barad_agent
2397
2402
2403
[root@wangzi ~]# pgrep -x barad_agent|xargs ps -o cmd -p
CMD
barad_agent
barad_agent
barad_agent
[root@wangzi ~]# pgrep -x barad_agent|xargs ps -o cmd -p|grep -v ^CMD$
barad_agent
barad_agent
barad_agent
[root@wangzi ~]# pgrep -x barad_agent|xargs ps -o cmd -p|grep -v ^CMD$| cut -d ' ' -f2-
barad_agent
barad_agent
barad_agent
[root@wangzi ~]# pgrep -x barad_agent|xargs ps -o cmd -p|grep -v ^CMD$| cut -d ' ' -f2-|grep -c barad_agent
3
[root@wangzi ~]# pgrep -x mysqld|xargs ps -o cmd -p|grep -v ^CMD$| cut -d ' ' -f2-|grep -c mysqld
1