麒麟系统中统计软件进程数应优先用pgrep -x '软件名' | wc -l,确保精确匹配command首词;含空格名需单引号包裹;多用户环境须加-u username限定用户。

如果您在麒麟操作系统中发现某个软件响应迟缓、资源占用异常,或想确认它是否启动了多个实例(比如多个 Chrome 窗口、多个 Java 服务进程),就需要精准统计该软件名对应的所有进程数量。这一步不能只靠肉眼扫列表,必须用命令锁定匹配逻辑,否则容易漏掉后台守护进程或忽略大小写差异。
用 ps + grep 统计进程数(推荐新手)
这一步操作起来很简单,直接在终端里敲一条命令就能出总数,适合快速验证。
打开终端(Ctrl + Alt + T),输入:ps aux | grep -w '软件名' | grep -v grep | wc -l
【-w 参数确保精确匹配整个单词,避免匹配到含子串的无关进程(如查 firefox 时误命中 firefox-esr 或 xfire)】
例如查看 Firefox 启动了多少个进程:执行 ps aux | grep -w 'firefox' | grep -v grep | wc -l,输出数字就是当前 firefox 相关进程总数。
注意:若软件名含空格(如“Visual Studio Code”),必须用单引号包裹全名,且需确认进程实际显示名——通常它在 COMMAND 列显示为 code 或 electron,而非完整界面名。
用 pgrep 按名称精准计数(更可靠)
pgrep 是专为进程名匹配设计的工具,不依赖文本解析,不会被命令行参数干扰,结果更干净。
第一步:终端中执行 pgrep -f '软件名',观察是否列出 PID;
第二步:直接统计数量:pgrep -f '软件名' | wc -l;
第三步:若需排除自身 grep 进程干扰(极少见),改用 pgrep -x '进程名'——【-x 要求完全精确匹配 COMMAND 字段首词,比如 -x 'java' 不会匹配 'javaw' 或 '/usr/bin/java'】;
例如统计所有 java 进程:pgrep -x 'java' | wc -l;若要包含带路径启动的 java,则必须用 -f 并注意可能多算 shell wrapper 进程。
按用户+软件双重过滤(多人共用系统时必需)
当麒麟系统为多用户环境(如实验室机房、开发服务器),同一软件可能被不同用户各自运行,此时仅按名称统计会混入他人进程,导致误判。
方法一:先查目标用户名下的所有进程,再筛软件名
执行 ps -u username | grep -w '软件名' | grep -v grep | wc -l,把 username 替换为实际用户名(如 zhangsan);
方法二:用 pgrep 指定用户筛选
执行 pgrep -u username -f '软件名' | wc -l;
方法三:若已知该软件以特定用户身份运行(如 nginx 常以 www-data 启动),可跳过用户名猜测,直接执行 pgrep -u www-data -x 'nginx' 验证是否只有主进程和 worker 进程在线。











